首頁 > web前端 > js教程 > 如何在 JavaScript 類別上正確實作點擊事件監聽器?

如何在 JavaScript 類別上正確實作點擊事件監聽器?

Mary-Kate Olsen
發布: 2024-12-02 12:31:15
原創
504 人瀏覽過

How to Correctly Implement a Click Event Listener on a JavaScript Class?

在 JavaScript 中的類別上實作點擊事件監聽器

在 JavaScript 中,事件監聽器是處理使用者互動的首選方法。當嘗試從單擊的元素取得屬性時,偵聽器提供了比使用傳統事件處理程序更有效的方法。

在提供的程式碼片段中:

var classname = document.getElementsByClassName("classname");

var myFunction = function() {
    var attribute = this.getAttribute("data-myattribute");
    alert(attribute);
};

classname.addEventListener('click', myFunction(), false);
登入後複製

問題在於如何 addEventListener被呼叫。事件監聽器函數 myFunction 透過在其後面加上括號 (myFunction()) 立即執行。相反,函數引用本身應該作為第二個參數傳遞。

classname.addEventListener('click', myFunction, false);
登入後複製

此外,getElementsByClassName 傳回一個節點列表,而不是 HTML 元素。要將事件監聽器應用於節點列表中的每個元素,應該迭代它:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].addEventListener('click', myFunction);
}
登入後複製

在支援ES6 的瀏覽器中,可以使用forEach 方法實現更簡潔的解決方案:

Array.from(elements).forEach(function(element) {
    element.addEventListener('click', myFunction);
});
登入後複製

透過解決這些調整,程式碼現在應該使用JavaScript 事件偵聽器正確擷取點擊元素的屬性,而無需求助於jQuery 等外部程式庫。

以上是如何在 JavaScript 類別上正確實作點擊事件監聽器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板