我知道它很基本,但我不能得到它的工作。它使錯誤引發「預期目標」 ......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