我看过一些帖子(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