(问题:1和2有什么区别啊?) 
一样,写法不同,具体细分:onclick = this.sayhaha在IE和FF都可用
button1.attachEvent("onclick",this.sayhaha);只在IE可用,在FF要button1.addEventListener("onclick",this.sayhaha,false);(问题:jiji$sayhaha是有参数的方法,我要是往里面输入参数怎么办啊?) 
button1.attachEvent("onclick",function(){jiji$sayhaha("wangzhun")});event的问题-----如下,,我想问一下,event.srcElement,这里怎么是e.srcElement?我这个只运行于IE,这怎么能对呢 
这个是通过传递event进来,你如果只运行在IE上的可以不过传递e,直接event.srcElement
传递event进来一般是为了兼容FF,
如:
e = e||window.event; 
e.srcElement    //IE
e.target        //FF
传的时候,如:<div onclick='_tiClickEvent(event)'>test</div>

解决方案 »

  1.   

    1, onclick是单件,attachEvent是observe模式,是多投事件
    2. 看w3c标准事件与ie事件的区别,你就会明白了
      

  2.   

    最后那个event的问题
        你看我是这么调用的,
        td.attachEvent("onclick", _tiClickEvent);
        你看看它根本没有像你那样的传递一个event,<div onclick='_tiClickEvent(event)'>test </div>
        我就郁闷了,,,,,,,,,,,,,,,,,,
    另外2和3有什么不同啊?我用vs2008设置断点调试了一下,2的那句话只是传递一个引用给onclick事件,所以在没有触发事件的时候,断点根本不进行进入方法中
                          而我发现3的时候,断点进入方法当中,而且还执行一遍所要触发事件的那个方法,这是为什么啊,加载事件触发不是给一个函数引用吗,这里怎么要把这 个函数在定义的时候还要执行一遍呢?另外,问什么要加function () {..},我不加我看也正确啊???
                          
      

  3.   

    onclick 和 attachEvent还有一个区别是
    onclick只能单次加入一个事件内容
    attachEvent是可以一直叠加,比如attachEvent了一个alert(1),之后又attachEvent了一个alert(2),那执行的时候会两个都alertattachEvent的时候自动就带了event对象了另外带参数的没有加function(){}的话在程序读到这里的时候就执行,而不是触发事件执行
    比如onclick,没加的话,程序初始化在读到这里的时候就执行了,加了以后是按下去后再执行
    具体效果请自己测试一下就明白了。
      

  4.   

    最后那个event的问题 
        你看我是这么调用的, 
        td.attachEvent("onclick", _tiClickEvent); 
        你看看它根本没有像你那样的传递一个event, <div onclick='_tiClickEvent(event)'>test </div> 
        我就郁闷了,,,,,,,,,,,,,,,,,, 
    ---------
    这个你看了w3c的event文档和ie event文档就明白了,在你这里可以这样解释,w3c的event是即时当参数传入的,而ie的event是放在window这个对象里的function _tiClickEvent(e) {
    e=window.event||e;
    alert(e);
    }你是想问1和2的不同吧?
    1是直接在DOM里的,而2是由事件管理器进行管理