gpt4 book ai didi

javascript - 在 for 循环中生成 .click 函数

转载 作者:行者123 更新时间:2023-11-30 20:08:18 26 4
gpt4 key购买 nike

在循环遍历 15 个“盒子”对象的 for 循环中,代码如下:

for (var i = 0; i < boxesLength; i++) {

我正在尝试自动生成这些点击事件,它们以前是这样的:(一直到 15)

$("#box0").click(function(){
var rw = 462;
var input = $('#rw');
input.val(rw);

var rh = 310;
var input = $('#rh');
input.val(rh);
calculateRectangle();
calculateRectangle2();
});

现在我正尝试通过这样做在 for 循环中自动生成这些:

$("#box" + i).click(function(){
var rw = allBoxes[i].width;
var input = $('#rw');
input.val(rw);

var rh = allBoxes[i].length;
var input = $('#rh');
input.val(rh);
calculateRectangle();
calculateRectangle2();
});

我做错了什么?当我控制台记录 "#box"+ i 时,我得到了预期的结果..

最佳答案

这是闭包的一个例子。当您尝试单击一个按钮时,您的算法将使用 i 变量的最后一个值,即 boxesLength

要解决这个问题,只需使用 let 关键字即可。

for (let i = 0; i < boxesLength; i++) {
^^^

关于javascript - 在 for 循环中生成 .click 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52641367/

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