如何使用 JS 中的 for 循环将多个事件绑定到多个元素?

发布于 2024-10-18 21:16:31 字数 387 浏览 1 评论 0原文

嗨。最近在学习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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何以畏孤独 2024-10-25 21:16:31

在 javascript 中,简单地使用 var i; 定义变量并不会使它为零并且“可循环”。

因此,您只需为 i 变量分配一个数字即可。

for (var i = 0;

另请注意,由于 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.

for (var i = 0;

Also note that you can’t know what i is inside the callback due to JavaScript closure.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文