主要是解决在不同浏览器下的监听事件
例子: 给一个按钮绑定点击事件
<button class="btn2">点我啊啊啊啊</button>
在js中进行封装来兼容不同浏览器下的监听事件
var eventUtil = {
addHandler: function(element, type, handler) {
if(element.addEventListener) {
element.addEventListener(type, handler);
} else if (element.attachEvent) { // 兼容IE等低版本浏览器
element.attachEvent('on'+type, handler)
} else {
element['on'+type] = handler;
}
}, // 添加监听事件
removeHandler: function(element, type, handler) {
if(element.removeEventListener) {
element.removeEventListener(type, handler);
} else if (element.detachEvent) {
element.detachEvent('on'+type, handler)
} else {
element['on'+type] = null;
}
} // 移除所添加的监听事件
}
进行调用:
var btn2 = document.querySelector('.btn2');
function showMsg() {
alert('1111');
}
eventUtil.addHandler(btn2, 'click', showMsg); // 给btn2按钮添加click点击事件
eventUtil.removeHandler(btn2, 'click', showMsg); // 移除按钮的click点击事件
注意:
attachEvent接受的第一个参数是事件类型,要加on。如果是点击事件,就是onclick而不是click。
而addEventListener接受的第一个事件类型的参数是不加on的,click而不是onclick