js注册事件和删除事件兼容性解决方案

  1. 注册事件兼容性解决方案
/**
 * 注册事件
 * @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; 
    }
}

你可能感兴趣的:(js注册事件和删除事件兼容性解决方案)