jQuery事件.load(),.ready(),.unload()

只是一个简单的问题,为jQuery事件。 当加载DOM时,.load(),.ready()和.unload()是否按顺序运行? 当我看到jQuery文档时,答案似乎是。

<script type="text/javascript"> $(window).load(function () { // run code initializeCode(); }); $(document).ready(function() { //run code that MUST be after initialize }); $(window).unload(function() { Cleanup(); }); </script> 

然而,.ready()中的代码在initializeCode()之前执行; 是执行,所以我觉得很奇怪。 现在,我必须将我的代码放在.onload()方法中,并在initializeCode()之后。 这意味着在.ready()块内。

有人可以解释我更多关于这个,因为我是新来的jQuery?

注意: .unload().unload()已被弃用


 $(window).load(); 

将在页面及其所有内容完成加载后执行。 这意味着所有图像,CSS(以及由CSS定义的内容,如自定义字体和图像),脚本等都将被加载。 当浏览器的“停止”图标变成灰色时,会发生事件触发事件。 这对于检测何时加载文档及其所有内容非常有用。

 $(document).ready(); 

另一方面,只要Web浏览器能够运行JavaScript,就会在parsing器完成DOM后触发。 如果您想尽快执行JavaScript,这非常有用。

 $(window).unload(); 

当您离开页面时,此事件将被触发。 这可能是刷新/ F5,按前一页button,导航到另一个网站或closures整个标签/窗口。

总之,ready()会在load()之前被触发,而unload()将会是最后被触发的。

窗口加载将等待所有资源被加载。

文件准备好等待文件被初始化。

卸载好,等待文件被卸载。

顺序是:文件就绪,窗口加载,窗口卸载。

除非需要等待加载图像,否则请始终使用文档

准备好文件的速记:

 $(function(){ // yay! }); 

如果同时使用“document.ready”变体,它们将按照外观顺序触发

 $(function(){ alert('shorthand document.ready'); }); //try changing places $(document).ready(function(){ alert('document.ready'); }); 

另外,我注意到了.load和.ready之间的另外一个区别。 我打开一个子窗口,当子窗口打开时,我正在执行一些工作。 .load只在第一次打开窗口时调用,如果我不closures窗口,那么.load不会再被调用。 然而,无论是否closures子窗口,每次都会调用。