JavaScript事件添加的兼容性写法

时间:2021-02-25 04:37:17

事件添加

function addHandler(element,type,handler) {
if(element.addEventListener){
//检测是否为DOM2级方法
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
//检测是否为IE级方法
element.attachEvent("on" + type, function () {
//通过call或者apply解决IE下this指向问题
handler.apply(element);
});

}else {
//检测是否为DOM0级方法
element["on" + type] = handler;
}
}

事件移除

function removeHandler(element,type,handler){

if(element.removeEventListener){

element.removeEventListener(type,handler,false);

}else if(element.detachEvent){

element.detachEvent("on" + type, function () {

handler.apply(element);

});

}else {

element["on" + type] = null;

}
}

DOM级别跳转