新随笔  :: 联系 :: 订阅 订阅  :: 管理

书摘—$(document).ready()

Posted on 2011-03-04 17:25  张贺  阅读(440)  评论(0编辑  收藏  举报

1.执行机制
    $(document).ready()与window.onload方法相似,但执行机制方面有些区别。
window.onload方法是在网页中所有元素,包括元素所有的关联文件全部加载完毕,此时javascript才能访问网页中的任何元素。而JQuery中的$(document).ready()方法注册的事件处理程序,在DOM完全就绪时就可以被调用。此时网页元素对JQuery而言都是可以访问的,但这并不意味着这些元素关联的文件都已经下载完毕。
    如有一大型图片网站,若想对其中图片操作,window.load()需等到所有图片全部加载完成才能进行操作,而用$(document).ready()进行设置,只要DOM就绪就可以操纵了,不需等到所有图片全部下载完毕。
    同时,需要注意,由于在$(document).ready()内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完成。例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很有可能图片还未加在完毕,所以例如图片的高度和宽度这样的属性此时就不一定有效。要解决此类问题,可以引用JQuery中的load()方法。load()方法会在元素的onload事件中绑定一个处理函数,如果处理函数绑定给window对象,则会在所有的内容(包括窗口,框架,对象和图片等)加在完毕后触发,如果处理函数绑定在元素上,则会在元素的所欲内容加载完毕后触发。JQuery代码:

1 $(window).load()
2 {
3 //编写代码
4 }

等价于JavaScript中的

window.onload=function()
{
//编写代码
}


2.多次使用
window.onload在页面加在是只能执行一次,如果onload代码中有多个执行步骤,则自动调用最后一次,而$(document).ready()则可一次执行里面的所有补助。
3.简写方式

$(document).ready(function()
{
//代码编写
})
$().ready(
function()
{
//代码编写
})
$(
function()
{
//代码编写
})