0
jQuery 1.11からjQuery 3.0に移行してから問題が発生しました。私はjQueryのPOSTリクエストを実行しています。その前に、最初にhtml(data.responseText)
を終了してから、次のコードに移りました。このように:data.responseTextでalert()が表示される前にhtml()が更新されていません
$.ajax({
type: "POST",
url: "/files/" + url,
data: $("#entryForm").serialize() + '&journal_id=' + journalId,
complete: function(data) {
$('#saveResults').html(data.responseText);
alert("function done");
}
});
最初に実行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");
});
}
});
残念ながら、これは私の問題を解決しませんでした。誰でもそれを修正する方法アイデア?
走っている' 2番目の試みがない理由である(同期しています'alert()'が表示される前に完了する必要があります)。私は、UiがDOMで直ちに更新されず、 'alert()'がスレッドをブロックするブラウザレンダラーとの不一致しか想定していません。 'alert()'を短いタイムアウト(例えば10ms)で 'setTimeout()'コールに入れてみることができます。 –
html()関数の後のjqueryイベントの可能な複製](http://stackoverflow.com/questions/11826484/jquery-event-after-html-function) –
@RoryMcCrossan jQueryは 'の'