如何使用 JavaScript 方法移除事件处理程序

2025 年 3 月 18 日 | 6 分钟阅读

对象的状态变化被称为 JavaScript 中的事件。当浏览器执行特定操作时,HTML 会包含显示功能的各种事件。当 JavaScript 集成到 HTML 中并允许运行时,JavaScript 会对事件的发生做出响应。

可以使用内置的 JavaScript 函数 removeEventListener() 从元素中移除已连接事件的事件监听器。例如,如果一个按钮在被点击一次后被禁用,您可以使用 removeEventListener() 来移除点击事件监听器。

在您已生成事件并发生用户交互,但希望在特定情况下阻止该事件响应用户时,可以使用 removeEventListenert() 方法。

语法

以下语法使用 JavaScript removeEventListenert() 方法来移除事件监听器。

参数:该方法需要两个默认参数和一个可选参数。参数及其说明如下。

  • Event:此字符串标识必须移除的事件类型或事件名称。
  • Handler:要移除的事件监听器的功能。
  • UseCapture:这是一个可选参数。
    • 默认情况下,它具有布尔值 false,表示事件监听器应从冒泡阶段移除。
    • 如果 useCapture 的值为 true,则应使用 removeEventListener() 方法从捕获阶段移除事件监听器。

示例

以下示例展示了使用不同事件和监听器操作 remove event listener。

示例 1:移除按钮的点击事件

基本示例展示了带有事件的 JavaScript removeEventListenert() 方法。第一次点击按钮后会弹出 alert 框。之后,使用该方法移除事件功能,并禁用该事件及其监听器。第二次及之后的按钮点击时,alert 框将不再弹出。

输出

输出显示了添加和移除点击事件的按钮功能。

移除事件监听器前的输出

How to Remove an Event Handler Using JavaScript Method

移除事件监听器后的输出

How to Remove an Event Handler Using JavaScript Method

示例 2:移除 mousemove 事件

该示例显示了橙色背景的 div 标签的值。鼠标移动事件在网页上默认是激活的。点击该功能后,鼠标移动事件将不再工作,并显示页面的最后一个值。

输出

输出显示了添加和移除鼠标移动事件的按钮功能。图片显示了移除事件监听器后的输出。

How to Remove an Event Handler Using JavaScript Method

示例 3:移除 mouseover 事件

在此示例中,我们为元素添加了 mouseover 事件。当用户开始将鼠标悬停在该元素上时,希望事件结束。为了移除鼠标悬停事件,我们在按钮元素上创建了 removeEventListener()。

输出

输出显示了添加和移除鼠标悬停事件的按钮功能。

How to Remove an Event Handler Using JavaScript Method

示例 4:使用 true useCapture 移除 mouseover 事件

在此示例中,我们使用一个元素、一个 mouseover 事件,以及 useCapture 参数。当用户开始将鼠标悬停在该元素上时,希望事件结束。如果 useCapture 设置为“true”,则暂时移除事件,然后该函数会重新开始。

输出

输出显示了添加和移除鼠标悬停事件的按钮功能。

移除事件监听器前的输出

How to Remove an Event Handler Using JavaScript Method

移除事件监听器后的输出

How to Remove an Event Handler Using JavaScript Method

示例 5:使用 false useCapture 移除 mouse move 事件

在此示例中,我们使用一个元素、一个 mouseover 事件,以及 useCapture 参数。当用户开始将鼠标悬停在该元素上时,希望事件结束。如果 useCapture 设置为“false”,则暂时移除事件,然后该函数会重新开始。默认参数设置为 false,但您可以看到其工作功能。

输出

输出显示了添加和移除鼠标移动事件的按钮功能。

移除事件监听器前的输出

How to Remove an Event Handler Using JavaScript Method

移除事件监听器后的输出

How to Remove an Event Handler Using JavaScript Method

支持的 Web 浏览器

JavaScript 的 removeEventListenert() 方法支持的浏览器列表如下:

  • Google Chrome 1.0
  • Firefox 1.0
  • Edge 9.0
  • Safari 1.0
  • Opera 7.0

结论

如果您创建了一个事件并且某些事件持续工作,则使用 removeEventListenert() 方法可以停止其功能。