我在如何从我的 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”不仅打印了一次,而且打印了很多次...提前致谢!
1 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
如果您使用以下方式定义侦听器
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
添加回答
举报
0/150
提交
取消
