这是我在这里的第一篇文章。我对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次回复后,我发现我肯定误解了你的回复。它现在工作正常。我是学习者。
答案 0 :(得分:4)
myStopFunction
不知道myint
是什么,因为myint
是countDown
的本地。一个简单的解决方案是将myint
设置在countDown
之外。
var myint;
function countDown(frm)
{
...
myint=setInterval(... //note the lack of var here
...
}
function myStopFunction()
{
clearInterval(myint);
}