我想停止倒数计时器

时间:2013-01-11 22:15:33

标签: javascript html

这是我在这里的第一篇文章。我对JS不是很熟悉,也无法掌握它。我已经尝试了几天的各种代码,试图在它超时之前停止我的倒数计时器(这不是我的代码)但是没有用,所以放弃了“猜测”并将问专家。在此先感谢。

<button onclick="myStopFunction()">STOP</button><p>

<script> 
function countDown(frm)
{ 
var start=frm.v1.value; 
var now=new Date(); 
var end=new Date(frm.yr.value,frm.mth.value-    1,frm.day.value,frm.hrs.value,frm.min.value); 
var diff = (end - now)/1000; 
var step=(start-frm.v2.value)/diff; 
document.getElementById("counter").innerHTML=start; 
var myint=setInterval(function(){start=start-step;     document.getElementById("counter").innerHTML=start.toFixed(2); 
if(start<frm.v2.value){document.getElementById("counter").innerHTML="Ended";     clearInterval(myint)}},1000);
}


function myStopFunction()
{
clearInterval(myint);
}
</script> 

我已尝试过您的更新(请参阅下文),但计数器将不再启动。我可能误解了你的回复。

var myint; 
function countDown(frm) 
{ 
var start=frm.v1.value; 
var now=new Date(); 
var end=new Date(frm.yr.value,frm.mth.value-    1,frm.day.value,frm.hrs.value,frm.min.value); 
var diff = (end - now)/1000; 
var step=(start-frm.v2.value)/diff; 
document.getElementById("counter").innerHTML=start; 

}
{
myint=setInterval(function(){start=start-step;     document.getElementById("counter").innerHTML=start.toFixed(2); 
if(start<frm.v2.value)    {document.getElementById("counter").innerHTML="Ended";clearInterval(myint)}},1000); 
}

function myStopFunction()
{
clearInterval(myint);
}

你的“天哪”非常感谢你。看完第100次回复后,我发现我肯定误解了你的回复。它现在工作正常。我是学习者。

1 个答案:

答案 0 :(得分:4)

myStopFunction不知道myint是什么,因为myintcountDown的本地。一个简单的解决方案是将myint设置在countDown之外。

var myint;
function countDown(frm)
{ 
 ...
 myint=setInterval(... //note the lack of var here
 ...
}

function myStopFunction()
{
 clearInterval(myint);
}