2014-01-13 38 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);