我有一个简单的JavaScript setTimeout
函数,但它拒绝工作
setTimeout(timeup(tc,chosen),10000)
......这就是功能:
timeup = function (clt,clo)
{
alert("time up")
}
...时间提醒警报立即出现,而不是在10秒之后,有人能告诉我为什么会这样吗?
答案 0 :(得分:8)
因为你实际上是在setTimeout函数中调用timeup(tc,chosen)
函数。
尝试:
setTimeout(function(){
timeup(tc,chosen);
}, 10000);
答案 1 :(得分:4)
在您的示例中,您调用函数并将其结果传递给setTimeout
函数。
使用存储在变量中的函数的有效方法是:
setTimeout(timeup, 10000);
但它不允许传递参数。要传递参数,您可以尝试:
setTimeout(function(){
timeup(tc,chosen);
}, 10000);
答案 2 :(得分:3)
关键是你正在调用超时之前的函数,当你添加(tc,选择)这个时间函数。
删除()
的setTimeout(timeup,10000)
这将在10000ms后启动您的功能
答案 3 :(得分:1)
您需要将代码包装在匿名函数中:
setTimeout(function() {timeup(tc,chosen)},10000);
这会将您的代码置于计时器的上下文中,而不是您现在看到的内联执行。