테스트 사이트 - 개발 중인 베타 버전입니다

다중 타이머 질문 채택완료

브르그 5년 전 조회 3,219

 

타이머가 여러개 있고 한개의 스크립트로 돌리면

 

킬때마다 시간이 빨라지고 한개가 끝나면 멈춰버리는 현상이 있습니다.

 

이런경우에는 어떻게 해결 해야 될까요..

 

 

 </p>

<p><script></p>

<p>    time =  300; //45*60*10;</p>

<p>    var running = 0;</p>

<p> </p>

<p>function increment(op,sp){</p>

<p>    if(running == 1){</p>

<p>        setTimeout(function(){</p>

<p>            time--;</p>

<p>            var mins = Math.floor(time/10/60);</p>

<p>            var secs = Math.floor(time/10 % 60);</p>

<p>            var hours = Math.floor(time/10/60/60); </p>

<p>            var tenths = time % 10;</p>

<p>            if(mins < 10){</p>

<p>                mins = "0" + mins;</p>

<p>            } </p>

<p>            if(secs < 10){</p>

<p>                secs = "0" + secs;</p>

<p>            }</p>

<p>            if(time <= 0) {</p>

<p>                //result();</p>

<p>                Myaudio.play();</p>

<p>                document.getElementById(sp).style.backgroundColor = "red";  </p>

<p>                document.getElementById(sp).style.borderColor = "red";</p>

<p>                reset();</p>

<p>                </p>

<p>                    }</p>

<p>            document.getElementById(op).innerHTML = mins + ":" + secs ;</p>

<p>            </p>

<p>            increment(op,sp);</p>

<p>        },100)</p>

<p>    }</p>

<p>}</p>

<p>function startPause1(ch,op,sp){</p>

<p> </p>

<p>     running = 1;</p>

<p>    increment(op,sp);</p>

<p>    document.getElementsByClassName(ch).innerHTML = "Pause";</p>

<p>    document.getElementById(sp).style.backgroundColor = "green";    </p>

<p>    document.getElementById(sp).style.borderColor = "green";</p>

<p>}</p>

<p> </p>

<p>function reset(op,sp){</p>

<p>running = 0;</p>

<p>time =  300; //45*60*10;</p>

<p>document.getElementsByClassName(ch).innerHTML = "Start";</p>

<p>document.getElementById(op).innerHTML = "00:00";</p>

<p>document.getElementById(sp).style.backgroundColor = "red";  </p>

<p>document.getElementById(sp).style.borderColor = "red";</p>

<p>}</p>

<p></script></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
B
5년 전

변수 time, running을 같이 사용하는군요. 개별 사용하도록 바꾸면 되겠네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

 

1개 만 누를경우 정상적으로 이용가능한데

2개이상 누를경우 오작동이 발생되됩니다.

 

도움이 필요합니다..ㅠㅠ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

우주용사

increment 함수가 재귀함수로 되어 있어서 그런거 아닌가요?

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

브르그
5년 전
어떻게 해결하면 좋을까요...초보라
o
onerror
5년 전
function increment(op,sp) 함수안에 있는 increment(op,sp) 호출문을 지워 보세요.
브르그
5년 전
increment 안에 increment 지우면 1초만 적용되고 멈춰버려요...ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인