文档就绪vs正文就绪与窗口就绪事件

时间:2012-07-17 19:55:21

标签: javascript javascript-events event-handling jquery

这三个事件之间有什么不同?

哪一个在其他人之前/之后加载?

   <body> 
        <script type='text/javascript'> 
            $(document).ready(function(){
                console.log('Document %s',+new Date());
            });
            $('body').ready(function(){
                console.log('Body %s',+new Date());
            });
            $(window).ready(function(){
                console.log('Window %s',+new Date());
            }); 
        </script>
        <div>hello world</div>
    </body>

奇怪的是,它们按照我将它们放在代码上的顺序触发。对于当前的例子。 document首先开火,windows最后开火。

P.S。我看过window.onload vs <body onload=""/>window.onload vs document.onload和其他几个人。

1 个答案:

答案 0 :(得分:7)

它们完全相同,实际上传递给$(...)的参数并不重要。


来自 jQuery documentation about .ready

  

.ready(处理程序)

     

handler - 在DOM准备好后执行的函数。

  

以下所有三种语法都是等效的:

     
      
  • $(document).ready(handler)
  •   
  • $().ready(handler)(不建议这样做)
  •   
  • $(handler)
  •   

  

.ready()方法只能在匹配的jQuery对象上调用   当前文档,因此可以省略选择器。

正如所见( selector )到$()被明确地说是可选的(当做$(...).ready时),因此我们可以安全地假设它与...无关最终的结果。