javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > removeEventListener事件不起作用

removeEventListener事件不起作用的问题及解决

作者:平平无奇小码农qwq

文章指出在使用JavaScript的removeEventListener移除事件监听器时,应使用外部函数而非匿名函数,并强调了addEventListener和removeEventListener使用时的一些注意事项,例如在IE中使用attachEvent和detachEvent时不要传入匿名函数

removeEventListener事件不起作用

例子

给按钮添加点击事件

<button class="btn2">点我啊啊啊啊</button>

var btn2 = document.querySelector('.btn2');
btn2.addEventListener('click', function () {
	alert('1111');
}, false);

btn2.removeEventListener('click', function () {
    alert('1111');
}, false);

这样写的removeEventListener() 移除监听事件是不起作用的,要写成以下这种形式:

function showMsg() {
	alert('1111');
}
// IE8及以下不支持
btn2.addEventListener('click', showMsg, false);
btn2.removeEventListener('click', showMsg, false);

因为removeEventListener的第二个参数要使用外部函数,如上例的showMsg,写成匿名函数function () { } 是不起作用的。

IE的attachEvent和detachEvent也不要传入匿名函数

注意

(1)addEventListener和removeEventListener的第三个参数默认就是false,可以不写。

(2)第一个参数 click前面不要加on,是click不是onclick。其他事件也是如此

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文