在尋求在點擊時捕獲類別屬性值時,您可能遇到了 JavaScript 程式碼問題。具體來說,行 classname.addEventListener('click', myFunction(), false);無法在元素上註冊事件監聽器。
為了解決這個問題,我們來逐步分析程式碼:
修正的程式碼:
要解決此問題,我們需要將事件偵聽器正確附加到 getElementsByClassName 傳回的每個元素。這是修正後的程式碼:
var elements = document.getElementsByClassName("classname"); var myFunction = function() { var attribute = this.getAttribute("data-myattribute"); alert(attribute); }; for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', myFunction, false); }
修正說明:
在ES6 中,可以更簡潔地實現循環和事件監聽器新增:
Array.from(elements).forEach(function(element) { element.addEventListener('click', myFunction); });
對於較舊的瀏覽器,如IE6-8,請考慮檢查是否存在使用前先取得ElementsByClassName。
以上是為什麼 `classname.addEventListener(\'click\', myFunction(), false);` 不能用來新增事件監聽器到類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!