由 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”不仅打印了一次,而且打印了很多次...


提前致谢!


Smart猫小萌
浏览 134回答 1
1回答

白猪掌柜的

如果您使用以下方式定义侦听器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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript