解决addEventListener传参的问题和removeEventListener不起作用的问题

原文地址: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必须提出来,不能使用匿名函数,因为不同的匿名函数内存地址不同,移除监听器的时候会被认为是不同的函数,导致移除失败

猜你喜欢

转载自www.cnblogs.com/sunnywindycloudy/p/13206216.html
今日推荐