不确定这是否可行或如何进行.我在$.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,value ) {
// do stuff
});
loadSlider();
}
正如你提到的AJAX:只有实际的成功回调(即最有可能包含你发布的代码的函数)是异步执行的.该函数内的任何代码都是同步运行的(除非你在那里调用另一个异步函数).