2013-07-27 53 views
0

我想知道是否有重新啓動/清除setInterval()的方法;函數在Javascript中?我的問題是,當你去這裏:: http://jsfiddle.net/GqrRx/2/(抱歉它不想在這裏工作)...但如果你去那裏輸入日期,它可以正常工作。但是,如果你輸入另一個日期,則秒,分和小時會閃爍起來,並閃爍。我想我需要找到一種重新啓動時間間隔或停止的方法。清除setInterval並防止出現故障

我試着把它放在我的函數的頂部,但它似乎沒有做任何事情。

clearInterval(runSeconds); 
clearInterval(runMinutes); 
clearInterval(runHours); 

我也試過這樣:

var secInt = setInterval(runSeconds, 1000); 
var minInt = setInterval(runMinutes, 60000); 
var hInt = setInterval(runHours, 3600000); 
clearInterval(secInt); 
clearInterval(minInt); 
clearInterval(hInt); 
+0

我不完全確定這應該如何工作,但它可能是最好使用一個計時器。 – sabof

回答

1

設置的setInterval結果給一個變量,該變量傳遞到clearInterval

事情是這樣的:

var interval = setInterval(someFunc, 100); 
clearInterval(interval); 

更多信息請參見https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval?redirectlocale=en-US&redirectslug=DOM%2Fwindow.setInterval#Example

+0

Aww,這似乎不起作用!感謝您的幫助。 – Matthew

+0

你的小提琴首先不適合我,但是我相信你正在設置間隔並在錯誤的範圍內清理。一定要在'setInterval'和'clearInterval'都可以訪問的範圍內定義'var interval'。對於你的小提琴例子,不要把它放在'calcAge()'裏面,在外面定義它。 – mash