2012-02-09 2 views
0

버튼을 누르면 나는 카운트를 시작하고 카운트를 멈추려면 다시 누르십시오. 하나의 버튼 onclick 이벤트로 두 개의 함수를 작동시키는 것은 ";"과 분리되어 있다는 것을 알고 있습니다. 어떠한 제안? 이 코드는 하나의 함수에 대해 각각 두 개의 버튼으로 잘 작동합니다. 미리 감사드립니다. 두 개의 기능을 가진 하나의 버튼

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

자바 스크립트 코드 :

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;

사등이 버튼을 변경합니다 <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

감사합니다 Adjam. 당신이 내가 변화하도록 도와주세요! 또한 – 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

감사 답변을! 버튼을 두 번 누르면 변경 사항을 적용하고 지금은 절대 멈추지 않습니다. 왜? 또한 마지막 ")"은 불필요합니다. – billaki

+0

확실하지 않습니다. 코드 *가 작동해야합니다. – Blender

+0

그건 내 잘못이야. 그것은 완벽하게 작동합니다. 다시 한 번 감사드립니다! – billaki

1

즉시 다른 후 하나를 호출합니다, 그것은 말이되지 않습니다.

단일 기능을 사용하여 플래그 값을 확인하고 적절한 조치를 수행하십시오.

관련 문제