计算定时器集成

时间:2012-03-13 01:22:10

标签: jquery timer count

我正在尝试为我的代码添加一个计数器。我当前的代码倒计时,在计时器达到0后,它会向div显示新闻信息。整个过程将持续到页面关闭,但我想添加一个停止功能。这意味着一旦这个代码使用计数计时器执行10次,它将完全停止。我尝试使用变量session进行此操作,但它不会从1到10计数。它从0开始,然后随机跳转到67然后210 425,依此类推。如何从1到10完成此计数计时器,然后停止脚本?

var cycle = 0;
var session = 0;

function countdown() {
    var min = 60 * 10;
    var max = 60 * 30;
    return Math.floor(Math.random() * max) + min;
}

function search() {
    $.getJSON('terms.php?json', function(data) {
        $('#news_updates').attr("src", data);
    });
}


function update() {
    if (session === 10) {
        alert("done");
    }
    if (cycle === 0) {
        cycle = countdown();
        search();
        $('#countdown').html('<img src="loading.gif" alt="loading picture"/>');
        $('#countup').html(session);

    } else {
        var minutes = Math.floor(cycle / 60);
        var seconds = (cycle % 60);

        if (seconds < 10) {
            seconds = "0" + seconds;
        }

        $('#countdown').html(minutes + ':' + seconds);
        cycle--;
    }
    session++;
    setTimeout('update()', 1000);
}

1 个答案:

答案 0 :(得分:0)

而不是:

setTimeout('update()', 1000);

试试这个:

setTimeout(update, 1000);

这是这部分的jsFiddle:

我还在if(session === 0) { ... }中添加了一个返回值,因此它在10次运行后完全停止(即不再运行另一个setTimer并重复更多预期)。