1. removeEventListener(type,listener,useCapture)
- type: 事件类型,比如 click
- listener: 监听器 必须是一个实现了 EventListener 接口的对象,或者是一个函数。
- useCapture: 可选 第三个参数是一个布尔值,指定是使用事件冒泡还是事件捕获。不写,默认false
2. detachEvent(type,listener);
- type: 事件类型,比如 click
- listener: 监听器 必须是一个实现了 EventListener 接口的对象,或者是一个函数。
<body>
<input type="button" value="点击" id="btn">
</body>
<script src="../commons.js"></script>
<script>
var btn = my$('btn');
function btnClick() {
alert('hello');
myRemoveEventListener(btn, 'click', btnClick);
}
myAddEventListener(btn, 'click', btnClick);
</script>
commons.js
function my$(id) {
return document.getElementById(id);
}
function myAddEventListener(element, eventName, fn) {
if (element.addEventListener) {
element.addEventListener(eventName, fn);
} else if (element.attachEvent) {
element.attachEvent('on' + eventName, fn);
} else {
element['on' + eventName] = fn;
}
}
function myRemoveEventListener(element, eventName, fn) {
if (element.removeEventListener) {
element.removeEventListener(eventName, fn);
} else if (element.detachEvent) {
element.detachEvent('on' + eventName, fn);
} else {
element['on' + eventName] = null;
}
}