我正在使用Chrome扩展程序,每当我尝试向某个类添加“click”事件时,都会返回错误。
Error in event handler for 'undefined': Object #<NodeList> has no method 'addEventListener' TypeError: Object #<NodeList> has no method 'addEventListener'
这是我的函数代码(popup.js)
listElements: function(elements) {
iHTML = '';
for (var i = 0; i < elements.length; i++) {
...
...
iHTML += '<div class="theBtn">btn</div>';
...
...
}
$('popup_content').innerHTML = iHTML;
var btnElements = document.getElementsByClassName('theBtn');
if (btnElements.length > 0) {
btnElements.addEventListener("click", clicked);
}
}
我也尝试了每个(),但也没有用。相同的错误消息。它也很好地记录了“btnElements”。有什么想法吗?
谢谢!
答案 0 :(得分:0)
因为您使用的是jQuery而不是
var btnElements = document.getElementsByClassName('theBtn');
if (btnElements.length > 0) {
btnElements.addEventListener("click", clicked);
}
订阅点击事件:
$('.theBtn').click(clicked);
getElementsByClassName
返回NodeList,您无法将事件作为btnElements.addEventListener
附加到它。但是这应该有效:
var btnElements = document.getElementsByClassName('theBtn');
for (var i = btnElements.length; i--;) {
btnElements[i].addEventListener("click", clicked);
}