这是从01:00到00:00的基本计时器,当它到达00:00时,我想显示时间已到的警报。
为了跑得更快,我选择第二个58。 在firebug中我看到jocsecunda1和jocsecunda2有这些值,但我不知道为什么不触发setTimeount。也许我把它放在错误的地方?
谢谢!
//just create html, ignore:
var pentruminut = document.createElement('span');
document.body.appendChild(pentruminut);
pentruminut.setAttribute('id','unminut');
document.getElementById('unminut').innerHTML="01:00";
window.onload=function(){
(function(){
setInterval(function(){
cro();
document.getElementById('unminut').innerHTML="0"+jocminut+":"+jocsecunda1+jocsecunda2;
},1000);
}());
}
var jocminut = 1;
var jocsecunda1 = 6;
var jocsecunda2 = 10;
function cro(){
if(jocsecunda1!=0||jocsecunda2!=0){
jocsecunda2 -=1;
while(jocminut==1){
jocminut-=1;
jocsecunda1 -=1;
}
while(jocsecunda2==-1){
jocsecunda1-=1;
jocsecunda2=9;
}
}
}
//here is the issue:
(function(){setTimeout(function(){
if (jocsecunda1==5&&jocsecunda2==8){
alert("Time is up");
}
},1000);}())
答案 0 :(得分:1)
您的setTimeout设置为仅运行一次,超时为1000毫秒,因此当计时器为59秒时,仅检查58秒。
更好的解决方案是更改程序的工作方式,然后检查变量jocsecunda1 == 5
和jocsecunda2 == 8
的时间,然后触发警报。
示例fildde:http://jsfiddle.net/L7u26/4/