请帮助我编写代码。我的问题是当计时器完成时,它显示 -1:60 而不是显示 0:00。我尝试了不同的 else 语句方式,但没有成功。当我将 if 语句中的条件更改为 x>0 时,计时器不会从 0:60 开始计时。任何帮助将不胜感激。我尝试了不同的 else, if else 语句,没有任何帮助。 先感谢您。
<h1 id='session' onClick='general()'>2</h1>
JS:
var seconds=60;
var x=document.getElementById('session').innerHTML-1;
var t;
function timer(){
if(x>=0){
seconds--;
if(seconds<10){
seconds='0'+seconds;
};
if(seconds==0){
x--;
seconds=60;
}
}
document.getElementById('session').innerHTML=x+':'+seconds;
}
function stoptimer(){
clearInterval(t);
}
var on=true;
function general(){
if(on){
on=false;
t = setInterval(timer,200);
}else{
on=true;
stoptimer();
}
}
最佳答案
问题全是因为计时器函数,所以我对你的函数做了一些更改,并重写了它。我在 jsfiddle 中运行了它并且它正在工作。
function timer(){
if(x>=0 && flag==false){
seconds--;
if(seconds<10){
seconds='0'+seconds;
};
if(seconds==0){
x--;
seconds=60;
}
}
if (x == -1){
flag=true;
x = 0;
seconds = '00';
}
document.getElementById('session').innerHTML=x+':'+seconds;
}
确保使用全局变量 var flag=false;
以便正确执行此函数。
这是我创建的 jsfiddle 的链接:https://jsfiddle.net/35w4nkzm/1/
我希望这有帮助。
关于Javascript 简单计时器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394052/