1

可能重复:
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

4

0 回答 0