由JavaScript中的Class实例添加的RemoveEventListener

我在如何从div元素中删除事件侦听器时遇到了困难(实际上已经用完了),每次我生成Class的新实例时都会添加该事件监听器。

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'...

谢谢!

daluoxi 回答:由JavaScript中的Class实例添加的RemoveEventListener

如果您使用以下方式定义侦听器

myDiv.addEventListener('click',doThis,false)

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

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

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

本文链接:https://www.f2er.com/3058511.html

大家都在问