<input id="test" type="button" value="测试">
    <script>
        var test = document.getElementById("test");

        if(test.addEventListener){
            test.addEventListener("click",function(){
                alert(this.id + "1");
            })
            test.addEventListener("click",function(){
                alert(this.id + "2");
            })
            test.addEventListener("click",function(){
                alert(this.id + "3");
            })
        }else{
            test.attachEvent("onclick",function(){
                alert(1);
            })
            test.attachEvent("onclick",function(){
                alert(2);
            })
            test.attachEvent("onclick",function(){
                alert(this.id);
            })
        }
    </script>

代码很简单,不解释。

IE6输出结果:undefined,2,1。不管点多少次都那样!

IE10输出结果:test1,test2,test3

结论:

执行顺序:attachEvent是逆序,addEventListener是正序。

参数:attchEvent要带上on,addEventListener还多了useCapture,就是在捕捉阶段就能触发。第三个参数看这里:http://www.cnblogs.com/loveyouyou616/p/3916345.html.

作用域:attchEvent使用的是window域,所以输出id的时候为undefined,addEventListener使用的是标签的域。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-07-20
猜你喜欢
  • 2021-10-07
  • 2022-12-23
  • 2022-02-16
  • 2021-09-05
  • 2021-09-07
  • 2021-10-30
相关资源
相似解决方案