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