我的代碼看起來是這樣的:如何使用setTimeout()在jQuery(document).ready之外調用函數?
$(document).ready(function(){
var cont = 0;
function func1(cont)
{
//Some code here
search.setSearchCompleteCallback(this, searchComplete, null);
//Some other code
}
func1(cont);
function searchComplete()
{
//Some code
cont += 1;
if (cont < length) {
func1(cont);
} else {
// Other code
}
}
});
所以我想要做的就是延遲FUNC1(續)執行;在searchComplete()函數內部。原因是所有的代碼都是使用Google搜索API和PageRank檢查,我需要減慢腳本的速度,這樣我纔不會被禁止。 (特別是針對PR檢查的要求)。 如果我簡單地在func1(cont)上使用setTimeout();它表示沒有定義func1(),如果我嘗試獲取$(document).ready()之外的函數,它會看到函數,但Google代碼不會爲它需要完全加載的頁面。
如何解決setTimeout或如何暫停腳本數秒?
謝謝!
就是這樣!它現在有效。你能解釋一下有什麼問題嗎?謝謝! – Brayn 2009-09-07 17:36:10
@Brayn,你原來的代碼是這樣的:'window.setTimeout(func1(cont),1000);'?或者它是'window.setTimeout('func1(cont)',1000);'?在前一種情況下,您立即調用'func1',然後'setTimeout'抱怨沒有給出函數參數(因爲'func1'沒有返回函數)。在後一種情況下,'func1'在全局範圍/閉包中被調用,但是在那裏沒有'func1',因此出現了錯誤。 – strager 2009-09-07 17:47:29
我使用的是:window.setTimeout('func1(cont)',1000);.謝謝,現在我明白了! – Brayn 2009-09-07 22:20:58