Vue 单文件组件中用 removeEventListener 方法移除一个对 document 的监听时遇到了不生效的问题。

解决思路

  1. 确保removeEventListener方法的第二个参数 listener,即需要从目标事件移除的 EventListener 函数与addEventListener方法中的参数一致。

注意:如果是用function声明,并且函数体中访问了 this,需要用.bind() 方法绑定到 this。绑定之后的返回的函数和原先的函数并不是同一个函数!!
可以尝试用一个新变量接收返回的函数 作为参数listener,或者直接声明一个箭头函数。

  1. 如果还是不行 或者有莫名其妙的bug,可以尝试将函数写到 Vue 实例的 methods 中。

最近遇到类似的情况,最后用第二种方法解决了,但是不太懂为什么。

Logo

前往低代码交流专区

更多推荐