
- 注册事件兼容性解决方案
/**
* 注册事件
* @param element 元素对象
* @param eventName 事件名称
* @param fn 注册监听事件
*/
function addEventListener(element,eventName,fn) {
// 判断当前浏览器是否支持 addEventListener 方法 (ie9以上)
if (element.addEventListener) {
element.addEventListener(eventName,fn);
} else if (element.attachEvent) {
// ie9 以下且为IE浏览器
element.attachEvent('on' + eventName,fn);
} else {
// 通用
element['on' + eventName] = fn; // 类似于 element.onclick = fn;
}
}
2.事件兼容性解决方案
/**
* 删除事件
* @param element 元素对象
* @param eventName 事件名称
* @param fn 注册监听事件
*/
function removeEventListener(element,eventName,fn) {
// 判断当前浏览器是否支持 removeEventListener 方法 (ie9以上)
if (element.removeEventListener) {
element.removeEventListener(eventName,fn);
} else if (element.detachEvent) {
// ie9 以下且为IE浏览器
element.detachEvent('on' + eventName,fn);
} else {
// 通用
element['on' + eventName] = null;
}
}