2009-08-05 69 views
3

我正在使用$().each()來遍歷一些項目。我想確保在這段腳本之後的動作僅在each()完成時執行。jQuery each()和「on success」?

例子:

$('something').each(function() { 
    // do stuff to items 
}); 

// do something to one of these items 
$('item').etc 

看來在這一點上工作,因爲這是一個非常基本的動作。但有時會失敗,看起來each()部分仍然很忙,導致後續腳本的操作被each()操作覆蓋。

所以......這是可能的嗎?或者是代碼低於each()函數始終執行之後之前的代碼。我知道例如AJAX調用具有「成功」功能,強制代碼只在父動作完成時執行。這需要/可能嗎?我想是這樣的追隨者,但是這似乎並沒有奏效:

$('something').each(function() { 
    // do stuff to items 
}, function() { 
    // do stuff when the each() part has completed 
});

回答

5

each不同步,後應該執行之後並沒有回調的任何支持,因此無論發生什麼事。然而,這將取決於你的'做東西到物品',因爲其中的一些可能是異步的 - 例如動畫,上/下滑動等 - 而這些方法支持回調。