Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环中的事件侦听器_Javascript - Fatal编程技术网

Javascript 循环中的事件侦听器

Javascript 循环中的事件侦听器,javascript,Javascript,所以我有一个eventListner,它调用一个类,就像一个符咒一样工作,但只有一次,因为inte调用了索引为0的add类 我正在尝试创建一个循环,它将调用脚本中的每个add类,但我无法获取循环 这是不带循环的事件列表器 var AddEvent = "add"; var addClass = document.getElementsByClassName(AddEvent)[0] addClass.addEventListener("click", addDiceEvent, false);

所以我有一个eventListner,它调用一个类,就像一个符咒一样工作,但只有一次,因为inte调用了索引为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();
函数AddDice(){
对于(i=0;i<5;i++){
var addClass=document.getElementsByClassName(“添加”);
addClass.addEventListener(“单击”,addDiceEvent,false);
函数addDiceEvent(){
dicedes_func();
}
}
}AddDice();
有什么想法吗?

希望这项工作

var addClassArr= document.getElementsByClassName(AddEvent);

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

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

}

function addDiceEvent() {
      dicesides_funcfunc();
}
希望这项工作

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);
            })();
        }
}
函数AddDice(){
对于(i=0;i<5;i++){
(函数(){
var addClass=document.getElementsByClassName(“添加”);
addClass.addEventListener(“单击”,函数(){
dicedes_func();
},假);
})();
}
}

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

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

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

                addClass.addEventListener("click", function(){
                    dicesides_funcfunc();
                }, false);
            })();
        }
}
函数AddDice(){
对于(i=0;i<5;i++){
(函数(){
var addClass=document.getElementsByClassName(“添加”);
addClass.addEventListener(“单击”,函数(){
dicedes_func();
},假);
})();
}
}

不要使用
for..in
对数组(或类似数组的对象,如本例中的
NodeList
)进行迭代,因为这也将枚举可能不相关的对象属性。对于(var i=0;i@MattiasBuelens当我添加您的字符串并将addClassArr[x]中的x更改为addClassArr[i]时,它起到了作用。谢谢你们:)不要使用
for..in
对数组(或类似数组的对象,如本例中的
节点列表
)进行迭代,因为这也将枚举可能不相关的对象属性。对于(var i=0;i@MattiasBuelens当我添加您的字符串并将addClassArr[x]中的x更改为addClassArr[i]时,它起到了作用。谢谢你们:)