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

时间:2014-04-06 11:50:51

标签: jquery 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

1 个答案:

答案 0 :(得分:0)

使用闭包,例如:

for (var i = 0; i < 5; i++)
    $(document.body).queue(returnFromQueue(i)).delay(1000);

function returnFromQueue(i) {
    return function () {
        alert('i=' + i);
        $(this).dequeue();
    }
}