从10开始倒计时,并在计时器响应0时重复此操作

Eri*_*rik 2 javascript jquery countdown

我想从10秒倒数到0.当它达到0时,DIV将重新加载,计时器将重新开始.我有这个功能,它允许它完全像我想要的那样,但问题是,当倒计时达到0并返回到10时,它将计数-1 重载 -2 重载 -3 重载 -4 重载等等.那不是我想要的!:)

这是我的代码:

var time = setInterval(countdown, 1000);
function countdown() {
    var count = 10;
    countdown = setInterval(function() {
        $('#countdown').html(count + ' sekunder kvar');

        if(count == 0) {
            $('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
            clearInterval(countdown);
        }

        count--;
    }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

如何解决我的问题,以便计时器从10减少到0并永远重复倒计时?

提前致谢.

编辑

当此功能第一次达到0并重新开始时,计数如下:10,9,8,10,7,6,5,4,3,2,1,10,9,8,7,10 ,6,5,4,3,2,1,10,9,8,10,7,6等.为什么这个代码的行为如此?

function countdown() {
    var count = 10;
    var timerId = setInterval(function() {
        $('#countdown').html(count + ' sekunder kvar');
        count--;

        if(count == 0) {
            $('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
            clearInterval(timerId);
            countdown();
        }
    }, 1000);
}

countdown();
Run Code Online (Sandbox Code Playgroud)

提前致谢!

And*_*ong 5

我在你的剧本中看到很多问题......所以不确定你是如何让它工作的......

  1. 函数名不能有-,所以调用不起作用:S
  2. countdown是一个全局变量,function countdown()它与你的函数名相同,实际上是一个countdownception
  3. Interval当你打电话时,你每隔一秒就有效地创造一个新的countdown

要实现您想要的,请尝试更简单:

function countdown() {
    // your code goes here
    var count = 10;
    var timerId = setInterval(function() {
        count--;
        console.log(count);

        if(count == 0) {
            // your code goes here
            count = 10;
        }
    }, 1000);
}

countdown();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Xrbm5/13/