有人可以告诉我我在这里做错了吗?我简化了下面的
内容,但我基本上是试图创建一个列表,并有一个点击事件引用只在循环中可用的变量.
for (var i = 0; i < data.length; i++) {
$newRow = $(rowFormat);
$('a:first',$newRow).click(function(i){
return function() { alert(i); }
});
$list.append($newRow);
}
你没有
调用外部
函数.
$('a:first',$newRow).click(function(j){
return function() { alert(j); }
}(i)); /* Pay special attention to this line,it is where the major change is */
正如T.J. Crowder提到,你可以将工厂从循环中移出.
function my_factory(j) {
return function() {
alert(j);
};
}
$('a:first',$newRow).click(my_factory(i));