在一个循环中使用闭包会导致问题。我认为我需要创建另一个返回函数的函数来解决这个问题,但是我无法让它在我的 jQuery 代码中工作。
以下是简化形式的基本问题:
function foo(val) {
alert(val);
}
for (var i = 0; i < 3; i++) {
$('#button'+i).click(function(){
foo(i);
});
}
自然点击任何一个按钮都会弹出一个提示框,显示数字3。我想要的功能是:点击按钮1弹出提示框显示数字1,点击按钮2弹出提示框显示数字2,以此类推。
我该怎么做呢?