首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery append()是否异步运行?

Jquery append()是否异步运行?
EN

Stack Overflow用户
提问于 2011-02-23 07:18:58
回答 2查看 18.4K关注 0票数 26

我已经看到许多帖子(append supposedly immediate)在这个问题上有相互矛盾的答案。我们使用的是JQuery 1.4 (http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js),append()似乎是异步的,因此:

在AJAX回调上下文中显示代码的编辑

 ...
 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");
}

按预期执行并创建页面,但目标查询在运行时不会产生任何结果。在JS控制台中运行相同的代码将按预期检索元素。

如果这是JQuery中的预期行为,那么等待append完成的正确方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-23 08:00:11

所有的评论都有助于追踪到这一点。我在控制台跟踪一个转移注意力的问题。问题不在于同步性,而在于下一行:

$targets.each( function(){
  ...
  this.html();
  ...

必须是

$(this).html();

简而言之,每个人都是正确的。Jquery append()同步执行。

票数 27
EN

Stack Overflow用户

发布于 2014-01-23 15:02:44

如果在append之后不能正常工作,可以试试这个。

$('#dynamic-container').append(<your-content>) ;
setTimeout(function() {
    ...code which addresses elements inside #dynamic-container...
},0) ;

更多详细信息:

  • 显然是append DOM不同步更新,特别是在
    • 中,我在尝试检索div的高度时遇到了这个问题,因为append
    • My假设有浏览器更新线程异步更新,下面有更多评论,仍然不清楚事情是如何工作的,但这个解决方案对我来说都是有效的。
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5085228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档