【发布时间】:2013-12-10 20:58:22
【问题描述】:
我是这里的 JS 新手,正在研究一个在给定时间段后开始的倒数计时器。基本上,当用户点击一个按钮时,一个时钟开始,当第一个计时器用完时,第二个时钟开始。我知道“setInterval”是实现这一目标的最佳方式。我面临的主要问题是第二个计时器虽然会在屏幕上弹出,但不会开始倒计时。我相信这是因为我试图在 setInterval 中运行 setInterval,但不确定。前置计时器也在 1 而不是 0 处“发出哔哔声”。下面是代码。当按下表单按钮时,倒计时功能开始。
<script>
function countdown(form){
lead = form.leadseconds.value;
cd = form.cdseconds.value;
startLeader = setInterval(leadtimer, 1000);
}
function leadtimer(){
if (lead > 0){
document.getElementById("leadtime").innerHTML = lead;
lead--;
}
if (lead == 0){
document.getElementById("leadtime").innerHTML = "beep";
startTimer = setInterval(cdtimer, 1000);
clearInterval(startLeader);
}
}
function cdtimer(){
if (cd > 0){
document.getElementById("cdtime").innerHTML = cd;
lead--;
}
if (cd == 0){
document.getElementById("cdtime").innerHTML = "beepbeep";
clearInterval(startTimer);
}
}
</script>
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
为什么是
if (cd > 0) { lead--; }? -
您是否在某处声明了全局变量(
lead、cd、startLeader、startTimer)? -
你明白了!正在减少 cdtimer 函数中的错误变量。谢谢!!!
标签: javascript timer setinterval