JavaScript中的setTimeout不起作用

时间:2014-01-13 02:18:04

标签: javascript html delay

奇怪的问题在这里,我不明白为什么它不起作用。但基本上按下按钮时警报就会响起,根本没有5秒延迟!

<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>

2 个答案:

答案 0 :(得分: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>);

第一个参数是一个函数。你正在做的是为它提供alert(..);

的价值

将其更改为:

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