JavaScript 学习笔记【二】——事件侦听兼容写法
DOM级事件、DOM2级事件,兼容IE8+,chrome,firefox,opera,safari
缺点:1. 没有考虑到IE的作用域的问题,有待改进。IE的this指向的是window,而其它的浏览器指向的是该对象本身
2. 没有考虑IE的事件顺序问题,IE是对相同的事件,倒序执行的。IE,问题还真多。。。
3. 如果是用getElementsByTagName获取得到的数组,则不能使用该方法
var EventUtil = {
//添加事件
addHandler:function(element,type,handler){
//element:操作的对象 type:事件名称 handler:事件处理函数
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}else{
//在现代的浏览器中,估计都不会执行到这段代码,如果执行的话,那只能说,你out了,但没事,事件照样能用,放心吧,呵呵
element["on"+type] = handler;
}
},
//移除事件
removeHandler:function(element,type,handler){
if(element.addEventListener){
element.removeEventListener(type,handler,false);
}else if(element.attachEvent){
element.detachEvent("on"+type,handler);
}else{
element["on"+type] = null;
}
}
};