jQuery .off()
API 只能删除使用其自己的 on
(或 jQuery 中的 bind
)添加的事件方法,许多第三方插件可能会使用纯javascript添加事件,并且由于浏览器兼容性问题,是否有任何单行代码可以更轻松地完成此操作?
最佳答案
如果事件处理程序是通过 .addEventListener()
添加的,那么删除它的唯一方法是使用 .removeEventListener()
,这意味着您需要知道处理程序函数也是为了使用 .removeEventListener()
因此,如果使用匿名函数作为处理程序,则无法删除事件监听器。
在某些情况下,清除 DOM 元素上的所有事件监听器的一种严厉方法是将其替换为相同类型的新元素(可能在这样做时保留子元素)。这显然是一个生硬的工具,因为它将清除与先前 DOM 元素关联的所有状态。
关于javascript - 删除元素上的事件监听器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611905/