关于原生事情绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window疑问

在原生工作绑定中IE绑定中需要用到attachEvent,FF与chrome中需要用到addEventListener. attachEvent(工作,函数) 例如:var oBtn = document.getElementById('button');             oBtn.addachEvent('onclick',function(){ alert('a');          http://www.goodk123.info/linked/20130323.do    })          oBtn.addachEvent('onclick',function(){ alert('b');            }) addEventListener(工作,函数,false) 例如:var oBtn = document.getElementById('button');             oBtn.addEventListener('click',function(){ alert('a');            },false)          oBtn.addEventListener('click',function(){ alert('b');            },false) 上面咱们可以看到运用工作绑定的时分,工作的区别 一个是用onclick 一个是用到click,所以FF与chrome中的工作是不带on,而IE是有必要带on的 由于出现兼容性的疑问 需要封装函数 function addEvent(obj,ev,fn){ if(obj.attachEvent){ //关于IE浏览器 obj.attachEvent('on' ev,fn) }else{ //关于FF与chrome obj.addEventListener(ev,fn,false) } } 所以上述的实例可以改写成 addEvent(oBtn,'click',function(){ alert('a'); }) addEvent(oBtn,'click',function(){ alert('b'); }) 可是函数中如果出现this的话 例如: addEvent(oBtn,'click',function(){ alert(this); }) 得到的结果是不一样的 this在IE中弹出的window,在FF与chrome中指代的是其时方针 如果要用到其时方针需要对函数进一步改造 addEvent(oBtn,'click',function(ev){ var oEvent = ev||event; var that=oEvent.srcElement||oEvent.target; alert(that) }) http://www.6699ysk.info/linked/20130323.do 
posted @ 2013-03-24 05:35  chinadiy197601  阅读(253)  评论(0编辑  收藏  举报