SetTimeout javascript倒计时延迟计时器

Nir*_*rus 2 javascript jquery javascript-events settimeout countdowntimer

嗨,我对以下代码感到困惑

JSfiddle 链接

            for(var i=6;i>=0;i--)
        {

            setTimeout((function(i)
                  {

                $("div").delay(4000).html(i);
                alert(i); //if commented unable to see the countdown

                  })
                (i),4000);
            //alert(1);

        }
Run Code Online (Sandbox Code Playgroud)

我无法得到倒数计时器..什么是错误的...当"警报"被评论时无法看到倒计时数字.请有人解释上面的代码如何工作..发布一些正确的代码

Aln*_*tak 5

  1. .delay() 仅适用于jQuery动画方法,而不适用于一般的jQuery方法 .html()

  2. 你的所有超时都会立刻被解雇 - 没有什么可以解决它们的问题.

最终结果是(没有alert)通过循环的每次迭代立即运行,使得div包含0具有不可见(并且非常短暂地)包含来自先前迭代的其他数字.

试试这个,相反:

function counter($el, n) {
    (function loop() {
       $el.html(n);
       if (n--) {
           setTimeout(loop, 1000);
       }
    })();
}

counter($('div'), 6);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/alnitak/t3AA8/