2012-08-01 6 views
0

clearInterval (ou clearTimeout) 함수를 올바르게 처리하는 방법을 알 수 없습니다.clearInterval이 작동하지 않습니다.

컨텍스트 : 특정 일시 중지 시간이있는 여러 이미지를 표시합니다. 슬라이더를 움직이게하면 일시 정지 시간이 정확하고 말할 것도 없습니다. 특정 이미지로 건너 뛰기로 결정하면 clearInterval에도 불구하고 타이머가 0으로 설정되지 않으므로이 이미지가 너무 짧게 표시됩니다 (이전 타이머는 여전히 활성 상태 임).

아래의 내 js 코드가 잘못되었을 수 있습니까?

감사합니다.

function pauseImage() { 

var rest=null; 

clearInterval(rest); 

rest=setInterval(function() { ...go to the next slide...}, 5000); 

}; 

답변

0

당신은 간격을 작성하고 취소 같은 것을 시도 할 수 :

var IntervalObject = self.setInverval("nameOfFunction()", 5000); 

//following your example 
//var IntervalObject = self.setInverval(function(){ ... },5000) 

//to clear it 
self.clearInterval(IntervalObject); 

난이 도움이되기를 바랍니다!

방금 ​​self을 놓친 것 같습니다.

+0

'self'는 정의되지 않습니다. 그것은 작동하지 않습니다. – Quentin

+0

문자열을'setInterval'에 넘겨서는 안되며, 범위가 깨지고, 느리고, 디버그하기가 어렵습니다. – Quentin

+0

@Quentin 방금 당신의 대답을 보았습니다, 당신 말이 맞습니다. – Nuxy

2

rest이 기능에 적용됩니다. 함수가 호출 될 때마다 재설정됩니다. 그것을 더 넓은 범위로 옮기십시오.

var rest; 
function pauseImage() { 
    clearInterval(rest); 
    rest=setInterval(function() { ...go to the next slide...}, 5000); 
}; 
+0

좋은 관찰 Quentin, 나는 내 대답을했을 때 그것을 보지 못했습니다. – Nuxy

+0

안녕하세요, Quentin입니다. 대단히 고마워,이 수정이 효과가있다! 건배. 파스칼 – Pascal