Javascript jqueryajax循环不';t在'之前完成;完成';

Javascript jqueryajax循环不';t在'之前完成;完成';,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个照片库,可以通过循环ajax调用进行更新。问题是,在触发“完成”和页面更改之前,它只更新了大约6个图像。如何使脚本在执行“完成”之前等待整个循环完成 $('#selectAlbum').change(function() { var thisAlbID = $(this).children(":selected").attr("id"); var thisAlbURL = $(this).val(); $('.medSelectHighlight').each(functio

我有一个照片库,可以通过循环ajax调用进行更新。问题是,在触发“完成”和页面更改之前,它只更新了大约6个图像。如何使脚本在执行“完成”之前等待整个循环完成

$('#selectAlbum').change(function() {
  var thisAlbID = $(this).children(":selected").attr("id");
  var thisAlbURL = $(this).val();
  $('.medSelectHighlight').each(function() {
     jQuery.ajax({
       url:'system/move-media.php',
       data:{photo_id:$(this).attr('id'),album_id:thisAlbID},
       dataType: 'json',
       type:'POST'
    }).done(function() {
       document.location.href='../media/'+thisAlbURL;
    });
}); 

});

我还应该补充一点,我已经尝试了
async false
,它成功了-但是我读到它应该被避免…

我注意到你
完成了
每次启动ajax都会执行。您的
是否正确放置?我的意思是,它应该在每个
的结束括号的末尾,不是吗?试试这个:

$('.medSelectHighlight').each(function() 
  {
        jQuery.ajax
        ({
            url:'system/move-media.php',
            data:{photo_id:$(this).attr('id'),album_id:thisAlbID},
            dataType: 'json',
            type:'POST'
         });
   }).done(function() 
         {
               document.location.href='../media/'+thisAlbURL;
         });

在民进党的帮助下,我最终使用了ajaxStop,效果非常好。下面是那些有相同问题的人的代码

$('#selectAlbum').change(function() {
  $('body').css('cursor', 'progress');
  var thisAlbID = $(this).children(":selected").attr("id");
  var thisAlbURL = $(this).val();
     $('.medSelectHighlight').each(function() {
        jQuery.ajax({
        url:'system/move-media.php',
        data:{photo_id:$(this).attr('id'),album_id:thisAlbID},
        dataType: 'json',
        type:'POST'
        });
     }).ajaxStop(function() {
     document.location.href='media/'+thisAlbURL;
     });

});

当你说loop时,你的意思是说,
每个
函数对吗?是的,对不起-jQuery.eachah-看起来是这样的!谢谢民进党!不客气。似乎异步不是一个真正的问题。事实上-很抱歉,这个解决方案不起作用。我测试时没有上传正确的文件。我应用了那个解决方案,结果失败了。回到原点。。。