javascript - 删除元素上的事件监听器的最佳方法是什么?

标签 javascript jquery

jQuery .off() API 只能删除使用其自己的 on(或 jQuery 中的 bind)添加的事件方法,许多第三方插件可能会使用纯javascript添加事件,并且由于浏览器兼容性问题,是否有任何单行代码可以更轻松地完成此操作?

最佳答案

如果事件处理程序是通过 .addEventListener() 添加的,那么删除它的唯一方法是使用 .removeEventListener(),这意味着您需要知道处理程序函数也是为了使用 .removeEventListener() 因此,如果使用匿名函数作为处理程序,则无法删除事件监听器。

在某些情况下,清除 DOM 元素上的所有事件监听器的一种严厉方法是将其替换为相同类型的新元素(可能在这样做时保留子元素)。这显然是一个生硬的工具,因为它将清除与先前 DOM 元素关联的所有状态。

关于javascript - 删除元素上的事件监听器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611905/

相关文章:

javascript - 在 react 选择中选择一个选项时输入值不会改变

javascript - 如何使 Div 标签可见和不可见?

javascript - Angularjs下载图像并显示

javascript - 我如何定位这个特定的进度标签?

javascript - 通过视口(viewport)检测到 div 时的动画效果

javascript - 使用javascript随机图像并根据随机图像将背景颜色应用于页面

javascript - jQuery 调整视频大小,重置大小

javascript - 如何通过 Google CAJA 传递库?

jquery - ipad网络应用程序: How do I prevent the keyboard from popping up on jquery datepicker

jquery ajax 调用重定向模式打开的 Web 方法?