如何使用 JS 中的 for 循环将多个事件绑定到多个元素?
嗨。最近在学习jS。如何使用循环将多个事件绑定到多个元素?这是我正在尝试做的一个例子。假设我有几个 ID 为 $box1、#box2、#box3 ... #box9 等的 div,为什么这不起作用? (我使用jquery)。
for (var i; i<8; i++){
$('#box' + i).click(function(){alert('hai')});
}
我知道我可以做同样的事情,如下所示:
$('div').each(function(){
$(this).click(function(){alert('hai')});
});
但是我想知道为什么第一个代码片段不能按我的预期工作。
hai. I have been learning jS lately. How do i bind multiple events to several elements using a loop? Here is an example of what i am trying to do. Lets say i have several divs with the ids $box1, #box2, #box3 ... #box9 etc. why doesnt this work? ( im using jquery ).
for (var i; i<8; i++){
$('#box' + i).click(function(){alert('hai')});
}
I know that i can do the same thing instead like this:
$('div').each(function(){
$(this).click(function(){alert('hai')});
});
However i d like to know why the first code snippet wouldnt work as i intended it to.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 javascript 中,简单地使用
var i;
定义变量并不会使它为零并且“可循环”。因此,您只需为
i
变量分配一个数字即可。另请注意,由于 JavaScript 闭包,您无法知道回调中的
i
是什么。In javascript, simply defining a variable using
var i;
doesn’t make it zero and "loopable".So you simply need to assign a number to the
i
variable.Also note that you can’t know what
i
is inside the callback due to JavaScript closure.