有人能告诉我我在做什么错吗?我简化它下面,但我基本上是试图创建一个列表,并有一个引用只在循环中可用的变量的单击事件。如何将可变参数传递给使用jQuery的匿名函数?
for (var i = 0; i < data.length; i++) {
$newRow = $(rowFormat);
$('a:first', $newRow).click(function(i){
return function() { alert(i); }
});
$list.append($newRow);
}
你做了 “错误” 的事情是称为封闭。你给每个点击函数一个refference给同一个变量'i'。 – ITroubs 2011-04-04 15:06:24
@ITROUBS:他清楚地知道这一点,并试图解决它(事实上,他没有给任何*他们提及循环中使用的“i”;他将其隐藏在[外部]匿名函数的参数列表)。他只是忘记了一些括号 - 见大卫的答案。 :-) – 2011-04-04 15:16:29
是的,你是对的。没有正确地读取代码;-) – ITroubs 2011-04-04 15:44:03