简体   繁体   English

循环中的事件侦听器

[英]Event listener in a loop

So I have this eventListner that calls an Class, works like a charm but only once since inte call the add class with index 0. 所以我有一个eventListner,它调用一个类,就像一个超级按钮一样工作,但是自从它以索引0调用add类以来,它只有一次。

Im trying to create a loop that will call every add class inside the script, but i cant get loop... 我试图创建一个循环,该循环将调用脚本中的每个添加类,但我无法获得循环...

This is the event listner without the loop 这是没有循环的事件列表器

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

And this is what Im trying to create. 这就是我试图创造的。

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

}  AddDice();

Any ideas ? 有任何想法吗 ?

Hope this work....... 希望这项工作.......

var addClassArr= document.getElementsByClassName(AddEvent);

for (var x in addClassArr)
 {
var addClass = addClassArr[x];

addClass.addEventListener("click", addDiceEvent, false);

}

function addDiceEvent() {
      dicesides_funcfunc();
}

You need to create new skope in for loop, try this: 您需要在for循环中创建新的skope,请尝试以下操作:

function AddDice(){
        for (i = 0; i < 5; i++) {

            (function(){       
            var addClass =  document.getElementsByClassName("add");

                addClass.addEventListener("click", function(){
                    dicesides_funcfunc();
                }, false);
            })();
        }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM