2014-01-13 32 views
0

奇怪的問題在這裏,我不明白爲什麼它不起作用。但基本上,只要按下按鈕,警報就會觸發,根本沒有5秒的延遲!JavaScript中的setTimeout不起作用

<html> 
<head> 
    <title>Testing Page</title> 
</head> 
<script type="text/javascript"> 
function testing() { 
    var delay = 5000; 
    setTimeout(alert("5 seconds later..."),delay); 
} 
</script> 
<body> 
<input type="button" value="Run Function" onClick="testing()"> 
</body> 
</html> 

回答

7
function testing() { 
    var delay = 5000; 
    setTimeout(function(){alert("5 seconds later...");},delay); 
} 

需要一個函數來包裝它,不立即執行的警報。

Check out the MDN reference用於與如何使用setTimeout

+1

啊謝謝不知道! –

4

setTimeout函數如下使用的更多信息:

setTimeout(<function>, <delay>); 

的第一個參數是一個函數。你正在做的是給它警報的價值(..);

將其更改爲:

setTimeout(function(){ alert("5 seconds later..."); }, delay);