原文地址:https://blog.csdn.net/weixin_39841589/article/details/105070771
我的需求是希望在触发监听之后,移除这个监听
废话不多说直接上代码
addEventListener:
function f(){ let vueThis = this let fun = function () { vueThis.foo(param,fun) } document.querySelector('#deptUpdate').addEventListener('click', fun) }
removeEventListener:
foo (param ,fun){ document.querySelector('#deptUpdate').removeEventListener('click', fun) //TODO }
1、如果要在添加监听器的同时传参,需要在外面套一层function,否则方法会自动执行
2、移除的时候传递的参数要相同
3、监听器中的function必须提出来,不能使用匿名函数,因为不同的匿名函数内存地址不同,移除监听器的时候会被认为是不同的函数,导致移除失败