我要传递一个event对象,从函数参数到函数内部的方法,请看代码:
function wraphandler(myevent)   //这个是封装函数,用于封装多个顺序执行的事件响应函数
{
// event对象为什么不能传递到 wraphandler的下一层。
Object e = arguments[0];
function handler(e) {
  var tag = Event.element(e).tagName.toLowerCase();
  var data = $A(arguments);
  data.shift();
  document.writeln(this.name + 'Click on a ' + tag + '\nOther args: ' + data.join(', ') + '</br>');
  //document.writeln('clicked' + this.i.toString() + '</br>');
  document.writeln('-----------------------------' + '</br>');
}
//   点击计数器,wrap封装函数内的通用计数器
handler.i = 1;
//   顺序执行的第二个函数,代码功能是显示鼠标点击次数
function handler2(e) {
handler.i = handler.i + 1;
document.writeln('handler.i = ' + handler.i + '</br>');
}}

解决方案 »

  1.   

    Object e = arguments[0];
    --->
    var e = arguments[0];试试
      

  2.   

    还是不行,程序运行没有报错,但功能没有实现。用了prototype框架,以下是完整代码:
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <script src="prototype-1.6.0.3.js"></script>
    <script type="text/javascript">
    function wraphandler(myevent)   //这个是封装函数,用于封装多个顺序执行的事件响应函数
    {
    // event对象为什么不能传递到 wraphandler的下一层。
    Object e = arguments[0];
    function handler(e) {
      var tag = Event.element(e).tagName.toLowerCase();
      var data = $A(arguments);
      data.shift();
      document.writeln(this.name + 'Click on a ' + tag + '\nOther args: ' + data.join(', ') + '</br>');
      //document.writeln('clicked' + this.i.toString() + '</br>');
      document.writeln('-----------------------------' + '</br>');
    }
    //   点击计数器,wrap封装函数内的通用计数器
    handler.i = 1;
    //   顺序执行的第二个函数,代码功能是显示鼠标点击次数
    function handler2(e) {
        handler.i = handler.i + 1;
        document.writeln('handler.i = ' + handler.i + '</br>');
    }}Event.observe(document.body, 'click', wraphandler.bindAsEventListener(obj, 1, 2, 3));
    </script>
    </html>要实现的功能是鼠标点击计数,点一次,显示1,再点,显示2 。。
      

  3.   


    你的代码什么时候执行wraphandler的下一层?
      

  4.   

    function wraphandler(myevent){
    e = arguments[0];
    function handler(e){
    var tag = Event.element(e).tagName.toLowerCase();
    var data = $A(arguments);
    data.shift();
    document.writeln(this.name + 'Click on a ' + tag + '\nOther args: ' + data.join(', ') + '</br>');
    document.writeln('-----------------------------' + '</br>');
    }
    handler.i = 1;
    function handler2(e){
    handler.i = handler.i + 1;
    document.writeln('handler.i = ' + handler.i + '</br>');
    }
    }
      

  5.   

    prototype框架负责绑定,鼠标点击自动就应该执行wraphandle
      

  6.   

    没看出来xfsnero大哥改了哪里。
      

  7.   

    function handler(e)中的e不是你在闭包中定义的e...