これが可能かどうか、またはそれをどうやって行うのかわからない。 $ .ajax応答で以下を使用していますが、これは完全に正常に機能しますが、ループの反復が終了した後、関数loadSlider();
を呼び出す必要があります。
if (response.success)
{
$.each( response.screenshots, function( index, value ) {
//add the slide
$( '#slider1' ).prepend( '<li data-id="'+value.screenshot_id+'"><img src="/showimage.php?show='+value.image_filename+'" alt=""></li>' );
//add the pager
$( '#rslides-pager' ).prepend( '<li><a href="javascript:;"># here</a></li>' );
});
//want to call loadSlider(); AFTER everything above is completed
}
$.each()
は配列を同期的に反復するため、$.each();
呼び出しの後にコードを実行するだけで済みます。
if (response.success) {
$.each( response.screenshots, function( index, value ) {
// do stuff
});
loadSlider();
}
AJAXについておっしゃるように、実際の成功コールバック(つまり、投稿したコードが含まれている可能性が最も高い関数)のみが非同期で実行されます。その関数内のコードはすべて同期的に実行されます(もちろん、そこで別の非同期関数を呼び出さない限り)。