在寻求在点击时捕获类属性值时,您可能遇到了 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中文网其他相关文章!