循环中的事件侦听器

Event listener in a loop

本文关键字:侦听器 事件 循环      更新时间:2023-09-26

所以我有一个调用class的eventListner,它的工作方式就像一个魅力,但自从intel调用索引为0的add类以来,它只调用过一次。

我试图创建一个循环,调用脚本中的每个add类,但我无法获得循环。。。

这是没有循环的事件列表器

var AddEvent = "add";
var addClass = document.getElementsByClassName(AddEvent)[0]
addClass.addEventListener("click", addDiceEvent, false);
function addDiceEvent() {
      dicesides_funcfunc();
} 

这就是我想要创造的。

function AddDice(){
        for (i = 0; i < 5; i++) {
            var addClass =  document.getElementsByClassName("add");
            addClass.addEventListener("click", addDiceEvent, false);
            function addDiceEvent(){
            dicesides_funcfunc();
            }
        }
}  AddDice();

有什么想法吗?

希望这项工作。。。。。。。

var addClassArr= document.getElementsByClassName(AddEvent);
for (var x in addClassArr)
 {
var addClass = addClassArr[x];
addClass.addEventListener("click", addDiceEvent, false);
}
function addDiceEvent() {
      dicesides_funcfunc();
}

您需要在for循环中创建新的skope,请尝试以下操作:

function AddDice(){
        for (i = 0; i < 5; i++) {
            (function(){       
            var addClass =  document.getElementsByClassName("add");
                addClass.addEventListener("click", function(){
                    dicesides_funcfunc();
                }, false);
            })();
        }
}