我有这个功能,使一个ajax调用。我在最后一段代码注释中描述了问题。
function doop(){ var that = this; var theold = "theold"; var thenew = "thenew"; $.ajax({ url: 'doop.php', type: 'POST', data: 'before=' + theold + '&after=' + thenew, success: function(resp) { if(resp == 1) { $(that).siblings('.theold').html(thenew); } } }); // I have some code here (out of the ajax) that **further** changes // the .theold's html beyond what it was changed inside ajax success // but the change depends on whether the resp (inside the success // function) returned 1 or not, so this code out here depends on the ajax // so it looks like I have to turn this ajax call into a sync ajax return false; }
根据代码注释中描述的问题,哪种更改最适合这种情况?
您需要为以下同步请求设置async:false:
function doop(){ var that = this; var theold = $(this).siblings('.theold').html(); var thenew = $(this).siblings('.thenew').val(); $.ajax({ async: false, url: 'doop.php', type: 'POST', data: 'before=' + theold + '&after=' + thenew, success: function(resp) { if(resp == 1) { $(that).siblings('.theold').html(thenew); } } }); // some other code return false; }
详情请看这里