我看過一些帖子(append supposedly immediate),其中有一些矛盾的接受答案。我們使用JQuery 1.4(http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js)和append()似乎是異步的,這樣的:Jquery append()是否異步行爲?
編輯以顯示
...
var message = $.ajax({
type: "GET",
url: "/getVolumes/" + _Id,
async: false
}).responseText;
if (parseInt(message) != 0){
var $results = $(message);
$MAIN_DIV.append($results);
retrieveTargets();
}
...
function retrieveTargets(){
var $targets = $(".resultTargets");
}
執行AJAX回調的背景下代碼,並創建如預期的頁面,但目標查詢在運行時不會產生任何結果。在JS控制檯中運行相同的代碼將按預期方式檢索元素。
如果這是JQuery的預期行爲,那麼等待append完成的正確方法是什麼?
jQuery 1.8 ??怎麼來的??你來自未來? :) – DrStrangeLove 2011-02-22 23:21:29
追加是同步的,但您的Ajax調用不是。此代碼位於何處?在你的ajax調用的回調函數中? – Capsule 2011-02-22 23:23:45
使用正確的版本進行編輯。我敢打賭,這將在1.8中以我想要的方式工作。 – RSG 2011-02-22 23:25:41