将 for 循环的计数器传递给 queue()



我正在尝试在排队函数中使用 for 循环计数器的值,例如:

for(var i=0; i<5; i++)
   $(document.body).queue(function(){alert('i=' + i); $(this).dequeue();}).delay(1000);

然后我得到:

i=0, i=5, i=5, i=5, i=5

我认为这是因为idelay(1000)时发生了变化..
我该怎么做才能获得正确的i值,即:

 i=0, i=1, i=2, i=3, i=4

使用闭包,例如:

for (var i = 0; i < 5; i++)
    $(document.body).queue(returnFromQueue(i)).delay(1000);
function returnFromQueue(i) {
    return function () {
        alert('i=' + i);
        $(this).dequeue();
    }
}

最新更新