我已经看到一些帖子(
append supposedly immediate)有相互抵触的答案。我们使用JQuery 1.4(http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js)并且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"); }
按预期执行和创建页面,但目标查询在运行时不产生任何内容。在JS控制台中运行相同的代码将按预期方式检索元素。
如果这是JQuery中的预期行为,等待直到append完成是什么正确的方法?
解决方法
所有评论都帮助追踪了这一点。我在控制台中跟着一只红鲱鱼。
问题不是同步的,而是下面的一行:
问题不是同步的,而是下面的一行:
$targets.each( function(){ ... this.html(); ...
需要的
$(this).html();
总之,每个人都是正确的。Jquery append()行为同步。
原文地址:https://www.jb51.cc/jquery/182253.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。