考虑我正在运行的简化版本:
<html>
<head>
<script src="data.js"></script>
<script src="content.js"></script>
</head>
<body>
<div id="contentGoesHere"></div>
</body>
</html>
显然还有更多,但这是基本要点。在 content.js 中,我有几个函数可以根据 data.js 中包含的 json 数据将标记加载到我的 div 中。除了这些功能之外,还有以下行:
$(document).ready(function()
{
loadContent();
});
出于所有意图和目的,加载内容加载得很好,但在该代码中是调用执行 jquery .show() 的第一个 div 中的几个 div 在它们都附加到容器元素后被加载。该代码没有执行,几乎就像 div 还不存在一样。所以我尝试延迟加载:
<html>
<head>
<script src="data.js"></script>
</head>
<body>
<div id="contentGoesHere"></div>
</body>
<script src="content.js"></script>
</html>
果然,两者都导致显示第一个面板。如果 .ready() 应该等到 DOM 被加载,为什么延迟加载包含 $(document).ready() 函数的文件会有所不同?