代码之家  ›  专栏  ›  技术社区  ›  Salman Arshad

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

  •  1
  • Salman Arshad  · 技术社区  · 14 年前

    当我使用使用prototype/jquery将数据“附加”到现有元素的方法时,将此类逻辑包装在内部是否是一个好的实践? document.observe("dom:loaded", foo) / $(document).ready(foo) 功能?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Salman Arshad    14 年前

    好吧,在准备好dom/window之前考虑引用元素将不起作用,除非它是 html 或者直接在标记中的元素之后注入元素,是的,这是真正完成它的唯一方法。

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

    上述操作将失败并返回空值。

        2
  •  2
  •   Marko    14 年前

    如果没有就绪/已加载的事件,除非代码位于页面底部,否则不会激发代码。这是因为当从 <head> 节(在正文之前执行)。

    试试这个:

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

    然后试试这个:

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

    你会明白我的意思的:)