首页 > 代码库 > 事件绑定函数封装(解决同一个对象的同一个事件绑定不同的函数,后面函数覆盖前面函数的问题)

事件绑定函数封装(解决同一个对象的同一个事件绑定不同的函数,后面函数覆盖前面函数的问题)

 

ie下:obj.attachEvent(事件名称,事件函数);
1.没有捕获
2.事件名称有on
3.事件函数执行的顺序:标准ie 》正序 非标准:ie 》倒序
4.this指向window


标准下:obj.addEventListener(事件名称,时间函数,是否捕获);
1.是否捕获 默认false:冒泡 true:捕获
2.事件名称没有on
3.事件执行顺序:正序
4.this指向触发该事件的对象


function bind(obj,evname,fn){
  if(obj.addEventListener){
    obj.addEventListener(evname,fn,false);
  }else{
    obj.attachEvent(‘on‘ + evname,function(){
      fn.call(obj);
    })
  }
}

 

function fn1(){
  alert(this);
}
function fn2(){
  alert(2);
}

bind(document,‘click‘,fn1);  //document
bind(document,‘click‘,fn2);  //2

 

事件绑定函数封装(解决同一个对象的同一个事件绑定不同的函数,后面函数覆盖前面函数的问题)