有点基本问题,但如何将不同的值传递给匿名函数?
也许有更好的方法来表达这一点......我的意思是,考虑下面的代码......假设我有一堆可点击的项目,如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,依此类推
答案 0 :(得分:5)
调用回调时idx
的值为循环结束。
这是一个标准解决方案:
for(idx = 1; idx < 30; idx++) {
(function(i){
$("#somediv" + idx).on('click', function() {foo(i); });
})(idx);
}
立即调用的中间函数在执行循环时存储idx
的值。
也许我可以通过在JavaScript中记住它来使其更清晰