我想删除使用 addEventListener()
添加的特定类型的所有事件监听器。我看到的所有资源都说你需要这样做:
elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown',specific_function);
但我希望能够在不知道它当前是什么的情况下清除它,像这样:
elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown');
最佳答案
如果不拦截 addEventListener
调用并跟踪监听器或使用允许此类功能的库,这是不可能的。如果听众集合是可访问的,但 feature wasn't implemented .
您可以做的最接近的事情是通过克隆元素来删除所有监听器,这不会克隆监听器集合。
注意:这也会移除元素子元素的监听器。
var el = document.getElementById('el-id'),
elClone = el.cloneNode(true);
el.parentNode.replaceChild(elClone, el);
关于javascript - 删除特定类型的所有事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469881/