2012-08-01 55 views
0

我無法弄清楚如何正確處理clearInterval(或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 2012-08-01 13:00:56

+0

你不應該傳遞一個字符串到'setInterval',它會打破範圍,很慢,而且很難調試。 – Quentin 2012-08-01 13:01:13

+0

@Quentin我剛剛看到你的答案,你說得對。 – Nuxy 2012-08-01 13:01:30

2

rest作用於該功能。每次調用函數時它都會被重置。將其移至更廣的範圍。

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

不錯的觀察昆汀,當我做出答案時,我沒有看到。 – Nuxy 2012-08-01 13:01:08

+0

嗨昆汀。非常感謝你,這個修復工作已經奏效!乾杯。帕斯卡爾 – Pascal 2012-08-01 13:20:40