在将内容附加到页面后,我如何知道 DOM 已准备就绪?

Posted

技术标签:

【中文标题】在将内容附加到页面后,我如何知道 DOM 已准备就绪?【英文标题】:How do I know that the DOM is ready after appending contents to the page? 【发布时间】:2014-07-02 10:18:55 【问题描述】:

假设我要将一些内容动态附加到页面,它涉及一些 html 和一些 javascript(通过添加更多脚本标签)。

我怎么知道一切都准备好了(就像在页面加载时我会使用 jQuery $(..) 一样)?

或者追加操作完成后继续下去就可以了?

【问题讨论】:

你必须像这样使用 $(document).ready(function());当 DOM(文档对象模型)被加载时,ready 事件发生。 参考这个***.com/questions/4584373/… 向我们展示您尝试过的代码 我可能是错的,但我相信.append() 是同步的,所以之后可以处理动态内容 事实证明你是对的 -> ***.com/questions/5085228/… 非常感谢 【参考方案1】:

我很幸运,在附加的 HTML 中包含了一个就绪函数。 比如

var new_html = "<SCRIPT>$(function()  alert("ready!"););</SCRIPT> <DIV>Added content</DIV>";
$("#host-div").append(new_html);

添加新的 div 后,脚本将运行。我通常使用这种技术在添加的内容中初始化 jqueryui 小部件。这在使用 AJAX 从服务器获取 HTML 时特别有用,并且 HTML 是从模板文件生成的——它将逻辑保持在 HTML/表示级别和相同的代码模块中。

【讨论】:

以上是关于在将内容附加到页面后,我如何知道 DOM 已准备就绪?的主要内容,如果未能解决你的问题,请参考以下文章

Select2 在将数据附加到现有选择后初始化选择

如何使用 wordpress 在 DOM 中附加回调函数

页面完全加载后如何执行功能?

jQuery 在附加到 DOM 之前从元素中生成变量

如何检查嵌入的 SVG 文档是不是加载到 html 页面中?

如何在没有框架的情况下检查 DOM 是不是准备就绪?