我想在结束考试时停止此计时器,但在它达到零之前。请帮我解决脚本问题。感谢。
JavaScript代码:
var cnt = 165*60; // 165 minutes (2 hours & 45 minutes) convert to seconds
function countdown() {
if (cnt < 0) {
document.f.c.value = "- : - - : - -" ;
}
else {
hour = Math.floor(cnt / 3600);
totalmin = Math.floor(cnt / 60);
min = totalmin - (hour * 60);
sec = cnt - (totalmin * 60);
if (sec < 10) { sec = "0" + sec;}
if (min < 10) {min = "0" + min;}
if (hour < 10) {hour = "0" + hour;}
document.f.c.value = hour + ":" + min + ":" + sec;
cnt--;
_timer = setTimeout("countdown()", 1000);
}
}
var _timer = setTimeout("countdown()", 1000); // tick
答案 0 :(得分:0)
在你的其他部分 检查
if(current_time < total_time)
{
//Set TimeOut
}
答案 1 :(得分:0)
我认为你最好的选择是使用setInterval而不是setTimeout。
setInterval返回间隔的句柄。 clearInterval(句柄)将取消该间隔。这是一些让你入门的假:
var global_timer;
function countdown(){
// do some countdown stuff
if([we're done]) {
window.clearInterval(global_timer);
}
}
global_timer = window.setInterval("countdown()", 1000);
答案 2 :(得分:0)
我认为你的意思是你想在倒计时达到0之前结束计时器。
首先,您应该使用setInterval
代替。它应该适用于所有主流浏览器(包括IE)。这只是表达“我希望这种情况经常发生”的一种更好的方式。根据{{3}},它:
重复调用函数,每次调用该函数之间都有固定的时间延迟。
以下是您将如何使用它:
var cnt = 165*60; // 165 minutes (2 hours & 45 minutes) convert to seconds
function countdown() {
if (cnt < 0) {
document.f.c.value = "- : - - : - -" ;
}
else {
hour = Math.floor(cnt / 3600);
totalmin = Math.floor(cnt / 60);
min = totalmin - (hour * 60);
sec = cnt - (totalmin * 60);
if (sec < 10) {sec = "0" + sec;}
if (min < 10) {min = "0" + min;}
if (hour < 10) {hour = "0" + hour;}
document.f.c.value = hour + ":" + min + ":" + sec;
cnt--;
if(cnt <= 0) { # Stops the timer when it reaches 0.
clearInterval(_interval);
}
}
}
var _interval = setInterval(countdown, 1000);
页面中的某个位置有一个停止计时器的按钮。
<input type="button" value="Done" onclick="clearInterval(_interval)">
虽然说实话,倒数计时器让我感到非常震惊。我宁愿有一个计时器。 : - )
答案 3 :(得分:0)
在用户结束考试时执行的代码中,可能在按钮点击后,只需添加以下行:
window.clearTimeout(_timer);
计时器将停止滴答。