何时使用dom:loaded / document.ready事件

时间:2010-07-06 09:56:12

标签: jquery prototypejs document-ready

当我使用使用prototype / jquery将数据“追加”到现有元素的方法时,将这样的逻辑包装在document.observe("dom:loaded", foo) / $(document).ready(foo)函数中是否是一个好习惯?

2 个答案:

答案 0 :(得分:2)

如果没有就绪/加载事件,您的代码将不会触发,除非它位于页面底部。这是因为当从<head>部分(在正文之前执行)中读取代码时,元素不存在。

试试这个:

$("body").animate({'background-color', '#ff0000'}, 2000);

然后试试这个:

$(document).ready(function() {
    $("body").animate({'background-color', '#ff0000'}, 2000);
});

你会明白我的意思:)。

答案 1 :(得分:1)

好吧,考虑在DOM /窗口就绪之前引用元素将不起作用,除非它是html元素或者你直接在标记中的元素之后注入它,是的,这是真正完成它的唯一方法。 / p>

<!doctype html>
<html>
    <head>
        <script>alert( document.getElementById('foo') );</script>
    </head>
    <body>
        <p id="foo"></p>
    </body>
</html>

以上将失败并返回null。