可能重复:
JavaScript 闭包是如何工作的?
我正在尝试在循环内的另一个函数中使用循环计数器的值。我知道这与函数闭包有关。它变得有点混乱。我想如果有人可以解释这个问题,我会理解的。
for (var i = 0; i < foo.length; i++) {
// $('<li/>').addClass('box').append($('<img/>').attr({'src':foo[i].image, 'data-phrase':foo[i].phrase}).hide()).appendTo($('ul.boxPack'))
$('<li/>').addClass('box')
.attr('data-phrase', foo[i].phrase)
.bind('click', function (i) {
alert(i);
console.log(foo[2]);
$(this).append($('<img/>').attr('src', foo[2].image))
})
.appendTo($('ul.boxPack'));
}
我无法警觉i
。