最新的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()


<元素對象