2012-02-09 14 views
0

ボタンを押すとカウントを開始し、もう一度押すとカウントを停止します。私は1つのボタンonclickイベントで2つの機能を動作させることを知っています、それは ";"とは別です。なにか提案を?このコードは、1つの関数に対してそれぞれ2つのボタンでうまく機能します。 ありがとうございます。2つの機能を持つ1つのボタン

var c=0; 
var t; 
var timer_is_on=0; 

function timedCount() 
{ 
document.getElementById('txt').value=c; 
c=c+1; 
t=setTimeout("timedCount()",1000); 
} 

function doTimer() 
{ 
if (!timer_is_on) 
{ 
timer_is_on=1; 
timedCount(); 
} 
} 

function stopCount() 
{ 
clearTimeout(t); 
timer_is_on=0; 
} 

答えて

0

ここには、私のテストされていない解決策があります。

まず、<form></form>というタグを取り除くことができると思います。

第二に、あなたはタイマーを変更する、それが参考にあなたの変数に意味のある名前だけでなく、cまたはt

サードを与えることを見つけるかもしれブールの上にある:var timer_is_on = false;

Fouthこれにボタンを変更します。<input type="button" value="Start count!" onclick="doTimer();" />

第五は、これであなたのコードを置き換える:

function doTimer(){ 

    if(timer_is_on){ 

    // Code to start the timer 
    // and any other code you want 

    timer_is_on = false; 

    }else{ 

    // Code to stop the timer 
    // and any other code you want 

    timer_is_on = true; 

    } 

} 
+0

ありがとうございました。あなたは私が変更をするのを助けます! – billaki

+0

また、あなたのコードを今後インデントすると、あなたの人生が楽になります – Adjam

3

どのようにこのようなものについて:

onclick="handleClick();" 

そして、あなたのJS:すぐに次々に呼び出します

function handleClick() { 
    if (timer_is_on) { 
    timer_is_on = false; 
    clearTimeout(t); 
    } else { 
    timer_is_on = true; 
    timedCount(); 
    } 
} 
+0

おかげで答えを!私は変更を行い、今、私はボタンを2回押すと決して止まらない。どうして?最後の ")"は不要です。 – billaki

+0

わかりません。コード*は機能するはずです。 – Blender

+0

それは私のせいです。それは完璧な仕事です。再度、感謝します! – billaki

1

、JavaScriptコード

<form> 
<input type="button" value="Start count!" onclick="doTimer();stopCount();" /> 
</form> 

それは意味をなさない。

単一の関数を使用して、フラグの値を確認し、適切な処理を実行します。

関連する問題