2014-03-06 3 views
-1

는, 타이머가 아래 코드에서 삭제되지 않고 삭제되지 않은 :자바 스크립트에서는 setInterval은 어떤 이유

var countdown = function() { 
    if (!interval || !countdownOngoing) { 
     countdownOngoing = true; 
     interval = setInterval(countdownFunction, 1000); 
    } 
}; 

function countdownFunction() { 
    if(seconds == 0) { 
     if (minutes == 0) { 
      countdownOngoing = false; 
      clearInterval(interval); 
      return; 
     } else { 
      minutes--; 
      seconds = 60; 
     } 
    } 

    seconds--; 
} 

하여 setInterval은 여전히 ​​사항 clearInterval 후 노력하고 있습니다. 내가 뭘 놓치고 있니?

+0

여기서 '간격'은 정의되어 있습니까? – Phil

+0

@Phil 간격이 글로벌 변수 인 것처럼 보입니다. – sachinjain024

+0

함수 외부에 'var interval;'넣기 – CRABOLO

답변

0

내가 아래에 쓴 것과 같다고 가정하면 아마도 분 + 초 논리 일 것입니다.

var interval = null, 
countDownGoing = false; 

function countdown() { 
    if(!interval || !countDownGoing) { 
     interval = setInterval(countdownFunction, 1 * 1000); 
     countDownGoing = true; 
    } 
} 

countdown() 

setTimeout(function() { 
    countDownGoing = false; 
}, 5 * 1000); 


function countdownFunction() { 
    if(!countDownGoing) { 
     clearInterval(interval); 
    } else { 
     alert(countDownGoing); 
    } 
} 
관련 문제