Javascript jqueryajax循环不';t在'之前完成;完成';
我有一个照片库,可以通过循环ajax调用进行更新。问题是,在触发“完成”和页面更改之前,它只更新了大约6个图像。如何使脚本在执行“完成”之前等待整个循环完成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
$('#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-看起来是这样的!谢谢民进党!不客气。似乎异步不是一个真正的问题。事实上-很抱歉,这个解决方案不起作用。我测试时没有上传正确的文件。我应用了那个解决方案,结果失败了。回到原点。。。