最新的Web开发教程
 

HTML DOM addEventListener() Method

<元素对象

附加点击事件到<button>元素。 当用户点击该按钮时,输出"Hello World"<p> id为“演示”元素:

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

更多"Try it Yourself"下面的例子。


定义和用法

所述addEventListener()方法附加一个事件处理程序指定的元素。

提示:使用removeEventListener()方法来删除已安装有一个事件处理程序addEventListener()方法。

提示:使用文件。 addEventListener()方法将事件处理程序附加到文档。


浏览器支持

在表中的数字规定,完全支持方法的第一个浏览器版本。

方法
addEventListener() 1.0 9 1.0 1.0 7

注意: addEventListener()在Internet Explorer 8和更早的版本,以及Opera 6.0及更早版本不支持的方法。 然而,对于这些特定的浏览器版本,你可以使用attachEvent()方法附加的事件处理程序(see "More Examples" below for a cross-browser solution)


句法

element .addEventListener( event , function , useCapture )

参数值

参数 描述
event 需要。 指定事件的名称的字符串。

注意:不要使用"on"前缀。 例如,使用"click" ,而不是"onclick"

对于所有的HTML DOM事件的列表,看看我们的完整的HTML DOM事件对象参考
function 需要。 当事件发生时运行的功能。

当事件发生时,事件对象被传递给函数作为第一个参数。 类型的事件对象的取决于指定的事件。 例如, "click"事件属于MouseEvent对象。
useCapture 可选的。 一个布尔值,指定该事件是否应在捕获或在冒泡阶段来执行。

可能的值:
  • 真 - 事件处理程序中捕获阶段执行
  • 假默认。 事件处理程序冒泡阶段执行

技术细节

DOM版本: 2级DOM事件
返回值: 无返回值
更新日志: 在将useCapture参数在Firefox 6和Opera 11.60成为可选的(has always been optional for Chrome, IE and Safari)

例子

更多示例

您也可以参照一个外部的"named"功能。

该实施例证实了如何当用户点击一个上执行一个功能<button>元素:

document.getElementById("myBtn").addEventListener("click", myFunction);

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

您可以将许多事件添加到相同的元素,而不会覆盖现有的事件。

这个例子演示了如何添加相同的两个click事件<button>元素:

document.getElementById("myBtn").addEventListener("click", myFunction);
document.getElementById("myBtn").addEventListener("click", someOtherFunction);
试一试»

您可以添加不同类型的活动,以相同的元素。

这个例子演示了如何添加相同的许多事件<button>元素:

document.getElementById("myBtn").addEventListener("mouseover", myFunction);
document.getElementById("myBtn").addEventListener("click", someOtherFunction);
document.getElementById("myBtn").addEventListener("mouseout", someOtherFunction);
试一试»

当传递的参数值,使用"anonymous function"调用与参数中指定的功能:

document.getElementById("myBtn").addEventListener("click", function() {
    myFunction(p1, p2);
});
试一试»

改变的背景颜色<button>元素:

document.getElementById("myBtn").addEventListener("click", function(){
    this.style.backgroundColor = "red";
});
试一试»

使用可选的参数将useCapture证明冒泡和捕获之间的区别:

document.getElementById("myDiv").addEventListener("click", myFunction, true);
试一试»

使用removeEventListener()方法,以除去已附接有一个事件处理程序addEventListener()方法:

// Attach an event handler to <div>
document.getElementById("myDIV").addEventListener("mousemove", myFunction);

// Remove the event handler from <div>
document.getElementById("myDIV").removeEventListener("mousemove", myFunction);
试一试»

对于不支持的浏览器addEventListener()方法,你可以使用attachEvent()方法。

本实施例说明跨浏览器的解决方案:

var x = document.getElementById("myBtn");
if (x.addEventListener) {                    // For all major browsers, except IE 8 and earlier
    x.addEventListener("click", myFunction);
} else if (x.attachEvent) {                  // For IE 8 and earlier versions
    x.attachEvent("onclick", myFunction);
}
试一试»

相关页面

JavaScript的教程: HTML DOM事件监听

HTML DOM参考: 文件。 addEventListener()


<元素对象