JavaScript:从该侦听器中删除事件侦听器? [英] JavaScript: remove an event listener from within that listener?
问题描述
我一直想知道这种方法有多干净-从该监听器中删除事件监听器.
I always wondered how clean is such approach - to remove an event listener from within that very listener.
更新:
在内部,我保留对象和侦听器的哈希,因此我可以从任何地方删除事件侦听器.我只是担心要从自身内部删除它.这样的动作真的会起作用吗?
Internally I keep a hash of objects and listeners, so I potentially can remove event listener from any place. I'm just concerned of removing it from within itself. Will such action do a job actually?
更新
我要问的是addEventListener,removeEventListener之类的东西.
I'm asking about addEventListener, removeEventListener stuff.
推荐答案
您可以传递一次
选项,以使侦听器仅执行一次操作,然后将其自身删除.文件: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters
You can pass the once
option to have a listener act only once, then remove itself. Docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters
示例:
element.addEventListener('eventname', (ev) => {
console.log("event is captured only once.");
// do more stuff...
}, { once: true });
从上面相同的docs链接来看,现代的浏览器支持不错,但Internet Explorer无法使用.
From the same docs link above, modern browser support is good, but is not available for Internet Explorer.
这篇关于JavaScript:从该侦听器中删除事件侦听器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!