我在这里的逻辑有点麻烦:
var seccount=60;
var seccounter=setInterval(sectimer, 1000);
function sectimer() {
seccount=seccount-1;
if (seccount < 0) {
seccount=59;
return;
}
document.getElementById("sectimer").innerHTML=seccount+ " seconds!";
当该值降至0时,计时器将在0停留2秒钟,然后再次跳至58。我在函数中尝试了一些不同的操作,例如:
function sectimer() {
seccount=seccount-1;
if (seccount <= 0) {
seccount=59;
return;
}
和
function sectimer() {
seccount=seccount-1;
if (seccount < 1) {
seccount=60;
return;
}
但一切都有一些变化,计时器会冻结在某个数字2秒钟,然后转到我选择的数字。
我想念什么?
最佳答案
退货放错了地方。尝试这个:
var seccount=60;
var seccounter=setInterval(sectimer, 1000);
function sectimer() {
seccount--;
if (seccount < 0) {
seccount=59;
}
document.getElementById("sectimer").innerHTML=seccount+ " seconds!";
}
return
导致功能立即终止,因此当它进入条件if (seccount < 0)
时(在seccount
为-1
的情况下),seccount
被更新为59
它永远不会到达下面的元素更新,而是终止于return
。然后,下次运行一秒钟后,seccount
会下降到显然不小于零的58
,然后跳到元素更新行。这就是为什么您感觉丢失了2秒的原因,因为您跳过了一次元素更新:-)