detachEvent实例的全套实现掩饰
还是挺复杂的,概念也比较多
by kixi
HTML
<input id="a" type="button" value="点我" />
<input id="b" type="button" value="删除点我的事件" />
CSS
/*
清晰网
kixi.com.cn
从javascript开始
*/
JavaScript
//兼容addEventListener和attachEvent
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture); //DOM2.0
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn); //IE5+
return r;
} else {
elm['on' + evType] = fn; //DOM 0
}
}
//兼容removeEventListener和detachEvent
function rmvEvent(elm, evType, fn, useCapture) {
if (elm.removeEventListener) {
elm.removeEventListener(evType, fn, useCapture); //DOM2.0
return true;
} else if (elm.detachEvent) {
var r = elm.detachEvent('on' + evType, fn); //IE5+
return r;
} else {
elm['on' + evType] = null; //DOM 0
}
}
function ok(){
alert('清晰网,从javascript开始');
}
function add_event() {
var a = document.getElementById("a")
addEvent(a,"click", ok,false);
}
function delete_event() {
var aa = document.getElementById("a");
rmvEvent(aa,"click", ok,false);
}
//执行
add_event(); //运行添加事件函数
var b = document.getElementById('b');
addEvent(b,"click",delete_event,false);