我正在尝试创建一个运行两次的一分钟计时器。在第一次运行期间,计时器将倒计时为0.然后,计时器将重置为一分钟并再次开始倒计时。要创建这个计时器,我使用的是Javascript,这是一种我不是特别擅长的编程语言。
当我只使用一次时,计时器工作。但是,当我尝试在for循环中使用它时,创建一个递归函数,或者甚至通过调用函数两次连续运行它,倒计时不是连续的。例如,它将显示4,然后是2,然后是-1,即使倒计时应该是连续的并且以0结束。
我在StackExchange上搜索过类似的问题。我跟着the answer to this question,但倒计时显示NaN而不是正确的数字。我还读过其他一些问题,但他们的答案对我没有用。
我的Javascript代码是:
window.onload = function() {
var seconds = 60;
function timeout() {
setTimeout(function () {
seconds--;
document.getElementById("time").innerHTML = String(seconds)
if (seconds > 0){
timeout();
}
}, 1000);
}
timeout()
seconds = 60;
timeout()
};
document.getElementById("time")
是指以time
作为其ID的空段落。
提前谢谢。
答案 0 :(得分:1)
您的代码同时运行该函数两次。试试这个,设置一个单独的计数器,并在计数达到设定数量后停止计时器:
window.onload = function() {
var seconds = 60;
var count = 1;
function timeout() {
setTimeout(function() {
seconds--;
document.getElementById("time").innerHTML = String(seconds)
if (seconds > 0) {
timeout();
} else {
seconds = 60;
count++;
if (count <= 2) {
timeout();
}
}
}, 1000);
}
timeout();
};
&#13;
<p id="time"> </p>
&#13;