2014-03-06 64 views
0
var timer = setInterval(function() {update()}, 1000) 

function myStopFunction() 
{ 
clearInterval(timer); 
} 

和我的HTML正常工作:clearInterval不是簡單的例子

<button onclick="myStopFunction()">Stop time</button> 

我不明白爲什麼不起作用?獲得幾個指針會很好,我認爲它是一個範圍問題?

+0

作品的示例。 http://jsfiddle.net/6XmKy/確保'myStopFunction()'是全局的。 –

+0

如果'myStopFunction'在另一個函數內部定義> – Musa

+0

@Musa Nope - 它是全局的,但它仍然不起作用... – user3317592

回答

0

你的程序並不完全清晰,因爲我無法從這個小例子中真正弄清楚你的函數範圍。

但是,一種可能性是您已經在另一個函數中聲明瞭setInterval函數,該函數被多次調用。

在這種情況下,正在設置多個間隔,並且只有最後一個要設置的間隔將被clearInterval清除。

如果這是您的問題,解決方法是將定時器聲明爲全局變量,然後每次在setInterval之前聲明clearInterval(timer)。

我寫下面

var timer; 
function mySetFunction(){ 
     clearInterval(timer); 
     timer = setInterval(function() {update()}, 1000); 
} 

function myStopFunction() 
{ 
clearInterval(timer); 
}