gpt4 book ai didi

javascript - 将计数器传递给匿名函数

转载 作者:行者123 更新时间:2023-11-29 09:53:43 25 4
gpt4 key购买 nike

这是一个基本问题,但我如何将不同的值传递给匿名函数?

也许有更好的措辞方式...我的意思是,考虑以下代码...假设我有一堆可点击的项目,其 ID 如 somediv1、somediv2 等。

for(idx = 1; idx < 30; idx++) {
$("#somediv" + idx).on('click', function() {foo(idx); });
}

function foo(inIDX) {
alert(inIDX);
}

无论我点击哪个 div,它总是提醒 30。我想点击 somediv1 提醒 1,somediv2 提醒 2,依此类推

最佳答案

当回调被调用时,idx 具有循环结束的值。

这是一个标准的解决方案:

for(idx = 1; idx < 30; idx++) {
(function(i){
$("#somediv" + idx).on('click', function() {foo(i); });
})(idx);
}

立即调用的中间函数在执行循环时存储 idx 的值。

也许我可以通过在 JavaScript 中记住这一点来使它更清楚

  • 变量的范围是函数或全局范围(绝不是简单的 block )
  • 一个函数保留一个指向它被声明的作用域的指针,并且可以在它被执行时使用这个作用域的变量(这被称为闭包)

关于javascript - 将计数器传递给匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012153/

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