我想删除使用添加的特定类型的所有事件侦听器addEventListener()。我看到的所有资源都在说你需要这样做:
addEventListener()
elem.addEventListener('mousedown',specific_function); elem.removeEventListener('mousedown',specific_function);
但我希望能够在不知道它当前是什么的情况下清除它,如下所示:
elem.addEventListener('mousedown',specific_function); elem.removeEventListener('mousedown');
addEventListener不幸的是,如果不拦截呼叫并跟踪侦听器或使用允许此类功能的库,这是不可能的。如果 listeners 集合是可访问的,但该功能没有实现,那将会是这样。
addEventListener
您可以做的最接近的事情是通过克隆元素来删除所有侦听器,这不会克隆侦听器集合。
注意:这也将删除元素子级的侦听器。
var el = document.getElementById('el-id'), elClone = el.cloneNode(true); el.parentNode.replaceChild(elClone, el);