我正在尝试在排队函数中使用 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
我认为这是因为i
在delay(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();
}
}