20170404事件绑定 - LiangYiDong/study GitHub Wiki

事件绑定作用是在 同一个事件里加多个函数;避免多个团队的项目中的方法冲突;

IE: 对象.attachEvent(事件名(带on),函数);

detachEvent(事件名(带on),函数) 是解除绑定;

非IE: 对象.addEventListener(事件名【不带on】,函数,是否捕获【一般日常填false,只有面试才需要捕获】);

removeEventListenr(事件名【不带on】,函数,是否捕获【一般日常填false,只有面试才需要捕获】) 是解除绑定;

做兼容: if(对象.attachEvent){

对象.attachEvent(事件名(带on),函数);
}else{
对象.addEventListener(事件名【不带on】,函数,是否捕获【一般日常填false,只有面试才需要捕获】);

}

封装一个方法: function myaddEvent(obj,event,fn){

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

}

}

事件绑定的this指向问题: 在IE下 this会指向window,非IE没有这个问题,用call()来修复-待更新;

绑定匿名函数,不能移除;原因是匿名函数即使是一样,但是类似双胞胎,同一个样但不是同一个人; function的创建都是通过new Function()来创建的,所以是多个一样的匿名函数,不是同一个函数来的。

⚠️ **GitHub.com Fallback** ⚠️