首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

IE绑定事件,this指向现阶段的对象的变通方法

2012-08-28 
IE绑定事件,this指向当前的对象的变通方法通常情况下,在IE下通过attachEvent给对象绑定事件后,this指向的

IE绑定事件,this指向当前的对象的变通方法

通常情况下,在IE下通过attachEvent给对象绑定事件后,this指向的并不是当前触发事件的DOM对象,我们必须使用

?

event.srcElement手动获取。现在主流浏览器(非IE)都支持addEventListener方法。为了兼容,一般都这么写:

?

?

?

? ? 该函数需要一个事件对象作为参数,然后返回一个修正后的对象。现在修改一下addEvent方法:

?

? ??function addEvent(o,evt,fn,bubble){

     bubble = bubble || false;     evt = evt.toLowerCase();    if(o.addEventListener){        o.addEventListener(evt,function(e){                                                     e = fixEvent(e);                                                     fn.call(e.target,e);                                             },bubble);    }else{        o.attachEvent("on"+evt,function(e){e = fixEvent(e);                                                                               //ie不支持currentTarget,手动设置为o                                         if(!e.currentTarget){                                                                  e.currentTarget = o;                                        };                fn.call(e.target,e);                                                                                                       });    }}

?

?

? ?这样我们绑定的test函数就可以在不同浏览器里执行了。

热点排行