我正在尝试为我的代码添加一个计数器。我当前的代码倒计时,在计时器达到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);
}
答案 0 :(得分:0)
而不是:
setTimeout('update()', 1000);
试试这个:
setTimeout(update, 1000);
这是这部分的jsFiddle:
我还在if(session === 0) { ... }
中添加了一个返回值,因此它在10次运行后完全停止(即不再运行另一个setTimer
并重复更多预期)。