Ace*_*ban 4 jquery document-ready
考虑我正在运行的简化版本:
<html>
<head>
<script src="data.js"></script>
<script src="content.js"></script>
</head>
<body>
<div id="contentGoesHere"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
显然还有更多内容,但这是基本要点。在 content.js 中,我有几个函数可以根据 data.js 中包含的 json 数据将标记加载到我的 div 中。除了这些功能之外,还有以下几行:
$(document).ready(function()
{
loadContent();
});
Run Code Online (Sandbox Code Playgroud)
出于所有意图和目的,加载内容加载得很好,但在该代码中调用执行 jquery .show() 在几个 div 中的第一个 div,这些 div 在它们都附加到容器元素后加载。该代码没有执行,几乎就好像 div 还不存在一样。所以我尝试延迟加载:
<html>
<head>
<script src="data.js"></script>
</head>
<body>
<div id="contentGoesHere"></div>
</body>
<script src="content.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)
果然,两者都会导致显示第一个面板。如果 .ready() 应该等到 DOM 加载完毕,为什么延迟加载包含 $(document).ready() 函数的文件会有所不同?
在 DOM 准备好后,您将使用 Javascript 附加额外的 DOM 元素。$(document).ready()在初始 DOM 加载后触发。这意味着在初始请求中发送的内容。它不知道您在外部 Javascript 中的动态附加。
此外,包含在该<head>部分中的脚本在加载该<body>部分之前同步加载。
| 归档时间: |
|
| 查看次数: |
2116 次 |
| 最近记录: |