2012-07-24 53 views
0

我在這裏有兩行javascript,當切換功能執行時,我希望在find函數發生之前延遲。延遲在jQuery中的聲明?

$activeToggle.toggle("fast"); // i want this to run and then after 1250 millisec 
$activeToggle.find(".anime").each(function (i,e){ // this code runs 

     alert(e.id); 

    }); 

我希望延遲代碼執行第二行,因爲某些原因,警報發生的切換動作發生之前,所以他們必須在有路推遲第二行。謝謝

+0

也許使用一個計時器? – Kotsu 2012-07-24 15:50:13

+0

setTimeout()..? – j08691 2012-07-24 15:50:32

+2

你如何使用切換的動畫回調?這樣你就可以使彈出窗口出現在動畫完成的時刻... – TheZ 2012-07-24 15:50:50

回答

9

使用回調函數。這可確保在運行循環功能之前切換已完成。

$activeToggle.toggle("fast", function(){ 
    $(this).find(".anime").each(function (i,e){ // this code runs 

     alert(e.id); 

    }); 
}) 

這樣你就不需要延遲。您的代碼將在toggle()函數後立即運行。

+0

OP表示他希望在查找功能之前延遲1250 ms。 – j08691 2012-07-24 15:54:29

+1

@ j08691我相信這只是因爲OP想要確保'toggle()'已經完成執行。我的代碼確保它有。 – Curt 2012-07-24 15:55:16

+0

是的,謝謝CURT – unknown 2012-07-24 16:00:17

1

您可以使用delay()方法:

$activeToggle.delay(1250).toggle("fast"); 
1
​​
0

。利用jQuerys延時功能:)

$activeToggle.delay(1250).toggle("fast", function(){ 
    $(this).find(".anime").each(function (i,e){ // this code runs 

     alert(e.id); 

    }); 
}) 
0

藏漢作爲使用回叫您可以拉福斯你的代碼執行之前要等待使用.stop()

$activeToggle.toggle("fast"); // i want this to run and then after 1250 millisec 
$activeToggle.find(".anime").stop(true,true).each(function (i,e){ // this code runs 
     alert(e.id); 
}); 
0

如果您的目標是在動畫完成後觸發某個功能,則可以傳遞toggle()回調函數,該函數僅在動畫完成後運行。

$activeToggle.toggle("fast", function() { 
    $activeToggle.find(".anime").each(

    function(i, e) { 
     alert(e.id); 
    }); 
});