4

在这里对 Jquery 来说相当新......但我被告知并正在做的一件事是在阅读 html 后在我的页面底部添加我的 Javascript。

现在,我看到人们添加 $(document).ready(function() 即使代码位于页面底部。DOM 不是在读取 HTML 时逐步构建的吗?在读取 HTML 结束时,不应该 DOM 自动准备好,因此,添加此检查有什么意义?

比如小demo:

<ul>
    <li id="draggable" class="ui-state-highlight">Drag me down</li>
</ul>

<ul id="sortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
</ul>
<script>
alert("In Page");
</script>

</div><!-- End demo -->

<script>
$(function() {
    alert("Dom is READY");
    $( "#sortable" ).sortable({
    revert: true
    });

    $( "#accordion" ).accordion();
});
</script>

“页面内”总是首先出现......是因为 HTML 不够“大”吗?

4

2 回答 2

3

事实是 document.ready 和 bottom of document 几乎是一回事,因为到 document 的末尾所有控件都在那里。就我个人而言,我仍然更喜欢 document.ready,因为它是 JQuery 框架识别文档结束的方式(理想情况下,我们应该坚持框架推荐的方式),其次它会照顾任何人错误地移动代码。

于 2012-05-26T03:32:27.547 回答
2

当您以这种方式内联编写代码时,假设您在头部加载 jQuery,可能不需要文档 onReady。

当您的页面代码通过文档中的外部 JavaScript 资源(可能不在底部)加载时,它开始产生影响。这样做的原因主要是为了代码可以被浏览器缓存,从而减少网络开销。

于 2012-05-26T03:44:22.463 回答