循环中的闭包给我带来了问题。我想我必须制作另一个返回函数来解决问题的函数,但我无法让它与我的 jQuery 代码一起工作。
这是一个简化形式的基本问题:
function foo(val) {
alert(val);
}
for (var i = 0; i < 3; i++) {
$('#button'+i).click(function(){
foo(i);
});
}
自然地单击三个按钮中的任何一个都会发出警报,说 3。我想要的功能是单击按钮 1 会发出警报,说 1,按钮 2 会说 2,等等。
我怎样才能让它这样做?