2013-04-26 3 views
-2

h = 0 일 때 인터벌을 지우고 싶습니다. m = 0; s = 0; 그들은 모두에서 0과 동일하지 않도록자바 스크립트 setInterval 루프 중지

보기 다른 지점에서 코드

var h = 10; 
var m = 11; 
var s = 12; 


function countdown() { 

    h--; 
    m--; 
    s--; 

    var t = h + ":" + m + ":" + s; 

    document.getElementById("show").innerHTML = t; 


    if (h == 0 && m == 0 && s == 0) { 
     clearInterval(timer); 
    } 

} 

var timer = setInterval('countdown()',1000); 

countdown(); 
+0

을 경우 화면에 ...
그런 다음 당신은 그냥 변수를 decrese한다 브라우저의 콘솔에서? –

+0

설정 간격으로 함수가'string'으로 실행되도록 설정하는 것은 좋지 않습니다.'setInterval (countdown, 1000);을 쓰는 것이 좋습니다. – user1983983

답변

3

는 m의 ANS s이 동시에 0이 아닌,이

if (h > 0) 
h--; 
if (m > 0) 
m--; 
if (k > 0) 
s--; 

See Demo

2

h, ms 범위 0이 항상 반복되는 작업을 수행하는 방법

... ... 동시.

당신은 수행하여 0보다 감소시키는 것을 방지해야합니다

if (h) h--; 
if (m) m--; 
if (s) s--; 

라이브 데모 :http://jsfiddle.net/Kn296/

1

h, ms이되지 않습니다 0를 동시에 따라서 h == 0 && m == 0 && s == 0은 결코 true이 아닙니다.

그래서 루프가 멈추지 않습니다.

1

귀하의 h, m 및 s 값이 동시에 0이 아니기 때문입니다.

0

시간처럼 조건을 사용합니다.

그래서 당신은 다음과 같거나 작은 경우 확인해야 0으로 변경 귀하의 경우 절 같은 :

if(h <= 0 && m <= 0 && s <= 0){ 
    clearInterval(timer); 
} 

업데이트

난 당신이 번호를 표시 할 것을 놓쳤다 그들이 오류가 반환 무엇보다 더 큰 공

if(h>0) h--; 
if(m>0) m--; 
if(s>0) s--; 
+0

이것은 마이너스 값 – Curt

+0

오 오른쪽을 표시합니다 ... i 그것을 놓쳤습니다. 그 죄송합니다 – tschulze

관련 문제