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
我在如何从我的 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