removeEventListener 不生效的解决办法
在 Vue 单文件组件中用 removeEventListener 方法移除一个对 document 的监听时遇到了不生效的问题。解决思路确保removeEventListener方法的第二个参数 listener,即需要从目标事件移除的 EventListener 函数与addEventListener方法中的参数一致。注意:如果是用function声明,并且函数体中访问了 this,...
·
在 Vue 单文件组件中用 removeEventListener 方法移除一个对 document 的监听时遇到了不生效的问题。
解决思路
- 确保removeEventListener方法的第二个参数 listener,即需要从目标事件移除的 EventListener 函数与addEventListener方法中的参数一致。
注意:如果是用function声明,并且函数体中访问了 this,需要用.bind() 方法绑定到 this。绑定之后的返回的函数和原先的函数并不是同一个函数!!
可以尝试用一个新变量接收返回的函数 作为参数listener,或者直接声明一个箭头函数。
- 如果还是不行 或者有莫名其妙的bug,可以尝试将函数写到 Vue 实例的 methods 中。
最近遇到类似的情况,最后用第二种方法解决了,但是不太懂为什么。
更多推荐
已为社区贡献1条内容
所有评论(0)