SetTimeout javascript倒计时延迟计时器

时间:2013-04-30 12:06:51

标签: javascript jquery javascript-events settimeout countdowntimer

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

JSfiddle link

            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);

        }

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

2 个答案:

答案 0 :(得分:5)

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

    等常规jQuery方法
  2. 你的所有超时都会立刻被解雇 - 没有什么可以解决它们。

  3. 最终结果是(没有alert)循环中的每次迭代立即运行,使div包含0无形(并且非常短暂地)包含其他数字来自以前的迭代。

    试试这个,而不是:

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

    请参阅http://jsfiddle.net/alnitak/t3AA8/

答案 1 :(得分:0)

不要使用警报,因为警报会停止一切。使用console.log