我知道它很基本,但我不能得到它的工作。它使错误引发“预期目标” ......setTimeout不起作用,我在这里丢失了什么?
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
我知道它很基本,但我不能得到它的工作。它使错误引发“预期目标” ......setTimeout不起作用,我在这里丢失了什么?
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
你已经包裹你的报价功能,所以它把它像一个字符串,而不是因为它的预期目标,因此,像SLaks说:
$(document).ready(function(){
setTimeout(showMessage, 1000);
function showMessage() {
alert('abc');
}
});
的setTimeout
方法最好用的功能,而不是字符串使用。因此,要做到这一点,最好的办法是这样的:
$(document).ready(function() {
setTimeout(showMessage, 1000);
});
function showMessage() {
alert('abc');
}
+1,因为你展示了一个工作示例 – Evildonald 2009-10-12 16:29:06
+1为“最佳使用”,正确暗示它可以与字符串一起使用(但是,当然,不应该)。 – 2009-11-08 02:18:32
你已经有了一个范围问题:showMessage()
才可见withing匿名函数,但是当参数setTimeout()
获取评估,运行时已经离开的范围。
使用功能直接作为参数传递给setTimeout()
,摆脱邪恶[TM]字符串评价:
setTimeout(showMessage, 1000);
的问题是ShowMessage函数,在ready事件和setTimeout的(“showMessage(内声明)“,1000)将在全局范围内查找它。您可以将其声明移至全局范围,例如没有准备好的事件,或者使用SLaks的答案:setTimeout(showMessage,1000)
如果提供downvote,请提供原因。我在这里没有看到原因。 – Ascalonian 2009-10-12 16:09:37
我没有downvote,但是有人做的原因很可能是'setTimeout()'的字符串参数非常好:问题在于变量的可见性 – Christoph 2009-10-12 16:10:02