2009-08-05 21 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は非同期ではないので、何でもの後に来ることはその後実行し、コールバックのいずれかのサポートがないはずです。しかし、これは、あなたの「物事をやること」が、非同期である可能性があるため(例えば、アニメーション、スライドアップ/スライドなど)、これらのメソッドはコールバックをサポートしているからです。