onclick=test;
如果test需要传参如何解决呢?

解决方案 »

  1.   


    var a = 123;
    ***.onclick = function(){
    test(a);
    }
      

  2.   

    onclick=test;
    你这样赋值的话,test函数里面this指向window。
    外面window下随便定义的变量都可以访问到。
      

  3.   

    能用就行了啊。你还想要怎么样。
    如果你想要添加多个事件处理程序,那就用 addEventlistenter和 attachEvent。
    onclick = function(){test(a)}
    这样你认为不方便。其实你只是受了弱类型javascript语法灵活的影响
    onclick其实是一个对象的方法。你可以在外面对他进行赋值,而不用管他是什么类型(函数或者其它的变量,都不用管)
    而在类似c#这样的强类型的语言中,这些东西你必须得注意。onclick是一个事件,他所接受的委托就必须遵循一定的签名(也就是参数、返回值之类的必须一致),是一个参数就是一个参数,是两个就是两个。你可以把他看成是一个接口
    所以像你提的这个要求,根本不必要去寻找什么写法,因为那样已经是标准的写法了。你用别的写法反而会让别人难以理解你的代码
    详细参考:http://www.chhblog.com/Web/ArticleView.aspx?ArticleID=172