jquery延迟改变排队函数关闭?

Blu*_*Fox 1 javascript queue jquery scope delay

我有一个非常简单的测试页面,测试jquery(1.4.2)队列和延迟.

    for (var i = 1; i <= 5; i++) {
        $('#test')
        //.delay(50)
        .queue(function(next) {
            console.log(i);
            next();
        });
    }
Run Code Online (Sandbox Code Playgroud)

现在,当我使用firebug在FF中运行此代码时,我得到了我的预期,1~5.

但是,如果我不评论延迟,我会得到6次五次?

有人可以帮我澄清一下吗?

Nic*_*ver 5

i是一个存储一次的单个变量,并由循环的所有迭代共享.如果.delay()你没有使用i 正确的价值,那么这就是你所期望的. 随着.delay()但是,你正在使用的值是什么 ...后来它就是它结束了作为在循环,6月底.