JavaScript 中 Class 个实例添加的 RemoveEventListener

RemoveEventListener added by Class instance in JavaScript

我在如何从我的 div 元素中删除事件侦听器时遇到困难(实际上 运行 没有想法),每次我生成 [=] 的新实例时都会添加该事件侦听器29=]。

class myClass {

myFunc () {
    const myDiv= document.querySelector('#div-1')
    myDiv.addEventListener('click', doThis, false)

   function doThis () {
   console.log('Test')
    }
   }
}

到目前为止我已经尝试过

myDiv.removeEventListener('click', doThis)

在添加新的 eventListener 之前,我猜这不起作用,因为它没有对相关特定实例和函数的引用。然后我尝试了

const myClicker = doThis.bind(this)

然后使用 myClicker 变量添加和删除侦听器,这也没有用。每次我运行

new myClass()

然后点击#div-1,添加了一个新的监听器并且'test'不仅打印了一次而且打印了很多次...

提前致谢!

如果你用

定义监听器
myDiv.addEventListener('click', doThis, false)

删除必须包含您传递给 addListener 的所有相同参数

// Make sure to include the 'false' parameter
myDiv.removeEventListener('click', doThis,false)

来源:https://developer.mozilla.org/pt-BR/docs/Web/API/EventTarget/removeEventListener