文档就绪v/s正文就绪v/s窗口就绪事件

Jas*_*ant 1 javascript jquery event-handling javascript-events

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

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

   <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>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它们与我将它们放在代码上的顺序相同.对于当前的例子.document一个先发射,windows另一个发射.

ps我读过window.onload vs <body onload =""/>, window.onload vs document.onload和其他几个.

Fil*_*efp 7

它们完全相同,实际上传递的参数$(...)无关紧要.


来自jQuery文档.ready:

.ready(处理程序)

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

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

  • $(document).ready(handler)
  • $().ready(handler) (不推荐这个)
  • $(handler)

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

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