0
我正试图添加事件监听器到适当的html元素。事件监听器只被分配给第一个类,被称为
var eventArray = [['scribbler', 'click', addNote], ['checkbox', 'change', strikethrough]];
for(var i=0;i<=eventArray.length; i++){
addEvents(eventArray[i][0], eventArray[i][1], eventArray[i][2]);
}
上述函数循环遍历所提供的数组并为addEvents
函数提供适当的参数。
function addEvents(className, event, fn){
var g = document.getElementsByClassName(className);
for(var i=0; i<=g.length; i++){
g[i].addEventListener(event, fn, false);
}
}
这是addEvents
函数被调用的for
循环。它适用于第一次运行,但之后的任何事情似乎都被忽略。即scribbler/click事件侦听器已正确应用,但复选框/更改一个不是。如果我颠倒数组的顺序,那么正确应用的侦听器也会翻转。
我试图在addEvents
函数的末尾努力重置g
变量,但这似乎不起作用。
document.getElementsByClassName(className).each.addEventListener(event, fn, false);
这似乎不是一个合适的解决方案。
因此,我通过一次迭代超调我的NodeList,导致第二次调用不发生?编辑:你的编辑回答了这个问题,谢谢。 – RM3
或多或少,你应该看看你的浏览器的控制台来获取更多信息 – pwolaq