2012-12-24 84 views
0

我讀了關於計時事件。我很困惑setTimeout:我在W3School上有一個例子,它每500毫秒運行一次。我讀了約setTimeout,它只有一次。 link爲什麼setTimeout函數永遠執行?

<head> 
    <script> 
    function startTime() { 
     var today=new Date(); 
     var h=today.getHours(); 
     var m=today.getMinutes(); 
     var s=today.getSeconds(); 
     document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
     setTimeout(function(){startTime()},500); 
    } 
    </script> 
</head> 
<body onload="startTime()"> 
    <div id="txt"></div> 
</body> 
+6

[請小心使用w3schools作爲參考。](http://w3fools.com) – Pointy

回答

4

函數內部復位定時器:

setTimeout(function(){startTime()},500); 

它運行時,它都會做的最後一件事是安排另一次迭代。

0

setTimeout函數只能使用一次。看看你的代碼。 在startTime函數中,您在500毫秒內再次調用相同的函數。 如果你希望它只能工作一次,不要遞歸地調用它。 或者如果您希望重複某個時間,請改用setInterval。 該函數返回一個id,使用它可以隨時停止它。

相關問題