1

これは私の最初の投稿です。私は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回読んだ後、あなたの返信を完全に誤解していたことがわかりました。今では正常に動作します。私は学習者です。

4

1 に答える 1

4

myStopFunctionは にローカルmyintであるため、何が何であるかわかりません。簡単な解決策は、 の外に配置してグローバルにすることです。myintcountDownmyintcountDown

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

function myStopFunction()
{
 clearInterval(myint);
}
于 2013-01-11T22:18:19.677 に答える