IE与FF中添加事件通用方法

在考虑到IE中attachEvent的作用域问题(this指向window),可将方法改进如下:

 

 

function addEvent(obj,type,listener){
     if (obj.addEventListener) {
         obj.addEventListener(type,listener,false);
     } else if (obj.attachEvent){
         obj['e'+type+listener] = listener; //保证对象同名方法的唯一性
         obj[type + listener] = function(){
             obj['e'+ type + listener](window.event); //执行方法,传入event,不传入也可

         }
        obj.attachEvent('on'+type,obj[type + listener]);//将事件parent object强行绑定到obj

     } else {
         obj['on'+type] = listener; //没考虑e传入,没什么用处(jquery中用此方法,不用上边那么复杂)
     } 
}

 

posted @ 2012-05-17 01:47  lemoncolaz  阅读(174)  评论(0编辑  收藏  举报