gpt4 book ai didi

javascript - 在循环中附加事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:52:16 27 4
gpt4 key购买 nike

我正在做的是使用循环在类上附加事件,并且在事件处理程序代码中使用索引值。这是我的代码:

var classElements=document.getElementsByClassName("a");
for(var i=0; i<4; i++)
{
classElements[i].onClick=function(){
alert("Clicked button : "+i);
}
}

每当我点击任何按钮时,它都会提醒:

Clicked Button : 4

可能是什么问题?

最佳答案

JavaScript 关闭对象并稍后在调用时对其求值。调用时,i 为 4。

我想你想要这样的东西:

var classElements=document.getElementsByClassName("a");
for(var i=0; i<4; i++)
{
classElements[i].onClick=function(j) {
return function(){
alert("Clicked button : "+j);
};
}(i);
}

编辑:显示命名函数以使代码更清晰

var classElements=document.getElementsByClassName("a");
for(var i=0; i<4; i++)
{
var makeFn = function(j) {
return function(){
alert("Clicked button : "+j);
};
};
classElements[i].onClick = makeFn(i);
}

关于javascript - 在循环中附加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389021/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com