自从我从jQuery 1.11迁移到jQuery 3.0后,我遇到了一个问题。我正在运行jQuery POST请求,在迁移之前它首先完成html(data.responseText)
,然后继续使用后面的代码。像这样:
$.ajax({
type: "POST",
url: "/files/" + url,
data: $("#entryForm").serialize() + '&journal_id=' + journalId,
complete: function(data) {
$('#saveResults').html(data.responseText);
alert("function done");
}
});
在data.responseText中,首先运行alert
,在完成功能html()
之后运行另一个alert("function done")
。
迁移后,alert("function done")
首先运行,因此此时功能html()
尚未完成,因为来自responseText的警报将在alert("function done")
之后。所以我尝试了这个:
$.ajax({
type: "POST",
url: "/files/" + url,
data: $("#entryForm").serialize() + '&journal_id=' + journalId,
complete: function(data) {
$('#saveResults').html(data.responseText).promise().done(function() {
alert("function done");
});
}
});
不幸的是,这并没有解决我的问题。任何人都知道如何解决它?
答案 0 :(得分:0)
试试这个。
.html在响应返回时设置,当成功完成时,将运行完成
success: function(data){
$('#saveResults').html(data.responseText);
},
complete: function(data)
{
alert("function done");
}