码迷,mamicode.com
首页 > Web开发 > 详细

js事件小结

时间:2015-04-06 12:40:34      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

 

 

首先事件绑定分为2种方法

一种为"DOM0级"方法,这里我理解为事件指定

 

            var oDiv = document.getElementById("div1");

             oDiv.onclick = function(){
                alert(this.id);
            };

第二种为"DOM2级"方法 我理解为绑定

IE8及以下:attachEvent(on+事件名,执行的函数);

其他浏览器(IE9+ FF chrome之类的):addEventListener(事件名,执行函数,为true的时候是在捕获阶段执行函数,但常用的是false,在冒泡阶段执行函数);

兼容写法:

function addEvent(obj,ev,fn){

                if(obj.attachEvent)
                {
                    obj.attachEvent("on"+ev,fn);
                }
                else
                {
                    obj.addEventListener(ev,fn,false);
                }

}

值得注意的是:

1、与DOM2 与 DOM0 区别在于

addEvent("click",oDiv,function(){alert(111)});
addEvent("click",oDiv,function(){alert(222)});
//以上2行都有效,也就是可以给oDiv绑定2种不同的click事件;执行2次
//alert(111);alert(222)

//而DOM0则不行;最后定义的会覆盖前面;只执行1次 alert(222)

oDiv.onclick = function(){alert(111)};
oDiv.onclick = function(){alert(222)};

 

特别注意IE的坑!!

attachEvent绑定的方法 里面的this==window 而 addEventListener绑定的方法里面的this==绑定的对象

oDiv.attachEvent("onclick",function(){

alert(this==window);//true

})


oDiv.addEventListener("onclick",function(){

alert(this==window);//false
alert(this==oDiv)//true

})

 

js事件小结

标签:

原文地址:http://www.cnblogs.com/websir/p/4395671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!