HTML DOM Document addEventListener() 方法

定义和用法

addEventListener() 方法将事件处理程序附加到文档。

实例

例子 1

向文档添加 click 事件:

document.addEventListener("click", myFunction);

function myFunction() {
  document.getElementById("demo").innerHTML = "Hello World";
}

亲自试一试

更简单的语法:

document.addEventListener("click", function(){
  document.getElementById("demo").innerHTML = "Hello World";
});

亲自试一试

例子 2

您可以向文档添加多个事件侦听器:

document.addEventListener("click", myFunction1);
document.addEventListener("click", myFunction2);

亲自试一试

例子 3

您可以添加不同类型的事件:

document.addEventListener("mouseover", myFunction);
document.addEventListener("click", someOtherFunction);
document.addEventListener("mouseout", someOtherFunction);

亲自试一试

例子 4

传递参数时,使用“匿名函数”调用带参数的函数:

document.addEventListener("click", function() {
  myFunction(p1, p2);
});

亲自试一试

例子 5

更改文档的背景颜色:

document.addEventListener("click", function(){
  document.body.style.backgroundColor = "red";
});

亲自试一试

例子 6

使用 removeEventListener() 方法:

// 添加事件监听器
document.addEventListener("mousemove", myFunction);

// 移除事件监听器
document.removeEventListener("mousemove", myFunction);

亲自试一试

语法

document.addEventListener(type, function, capture)

参数

参数 描述
type

必需。事件名称。

请勿使用 "on" 前缀。

请使用 "click" 而不是 "onclick"。

所有 HTML DOM 事件都列在:

HTML DOM Event 对象参考手册

function

必需。事件发生时运行的函数。

当事件发生时,将事件对象作为第一个参数传递给函数。

事件对象的类型取决于指定的事件。例如,"click" 事件属于 MouseEvent 对象。

capture

可选(默认 = false)。

  • true - 处理程序在捕获阶段执行
  • false - 处理程序在冒泡阶段执行

返回值

无。

技术细节

该方法将把指定的事件监听器函数添加到当前节点的监听器集合中,以处理指定类型 type 的事件。如果 capture 为 true,则监听器被注册为捕捉事件监听器。如果 capture 为 false,它被注册为普通事件监听器。

addEventListener() 可能被调用多次,在同一个节点上为同一种类型的事件注册多个事件句柄。但要注意,DOM 不能确定多个事件句柄被调用的顺序。

如果一个事件监听器函数在同一个节点上用相同的 type 和 capture 参数注册了两次,那么第二次注册将被忽略。如果正在处理一个节点上的事件时,在这个节点上注册了一个新的事件监听器,则不会为那个事件调用新的事件监听器。

当用 Node.cloneNode() 方法或 Document.importNode() 方法复制一个 Document 节点时,不会复制为原始节点注册的事件监听器。

这个方法也在 Document 和 Window 对象上定义了,而且工作方式类似。

浏览器支持

document.addEventListener 是 DOM Level 2 (2001) 特性。

所有浏览器都完全支持它:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 9-11 支持 支持 支持 支持

相关页面

元素方法

addEventListener() 方法

removeEventListener() 方法

文档方法

addEventListener() 方法

removeEventListener() 方法

教程

HTML DOM EventListener

完整的 DOM 事件列表