2010-07-16 102 views
5

我有一個完美的jquery擴展函數,但是當我通過setTimout傳遞它時,它不會等待指定的時間段並立即運行。setTimeout不能與jquery一起工作

jQuery(document).ready(function($) {  
    setTimeout($.mainmenuslider({ 
    trigger:'close' 
    }),6000); 
}); 

任何想法?

回答

8

你是打電話功能正在那裏,當你試圖設置稍後發生超時。相反:

jQuery(function($) { 
    setTimeout(function() { 
    $.mainmenuslider({trigger:'close'}); 
    }, 6000); 
}); 
15

你需要傳遞一個匿名方法做你想做的,是這樣的:

jQuery(function($) {  
    setTimeout(function() { 
     $.mainmenuslider({ 
     trigger:'close' 
     }); 
    }, 6000);  
}); 

否則你試圖通過結果的功能(使其執行立即,並且以後不會運行)。

+0

救了我的屁股剛纔!謝謝:)正在追逐比賽條件,並不知道爲什麼我不能擺脫它 – Bodhi 2012-07-16 08:18:58

2

試試這個!

jQuery(document).ready(function($) {  
    setTimeout("$.mainmenuslider({ 
    trigger:'close' 
    })",6000); 
}); 

在使用setTimeout()時,總是嘗試指定需要在引號中調用的動作。

例:

setTimeout("call_this_function()", 4000); 
+0

這實際上並不是一個好主意。看看其他答案,例如正確的方法來做到這一點。 – Pointy 2010-09-26 21:15:49

+0

行之前的4個空格將其格式化爲代碼。選擇一個塊並點擊'ctr-k'來做到這一點。 – 2010-09-27 00:40:07

+0

謝謝你的報價想法(: – 2013-03-21 09:54:02