首页 > 代码库 > jQuery domready

jQuery domready

在jQuery里面,我们可以看到两种写法:

$(function(){    //todo})$(document).ready(function(){    //todo})

这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。

window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。

模拟document添加一个ready函数: 

document.ready = function (callback) {            ///兼容FF,Google            if (document.addEventListener) {                document.addEventListener(DOMContentLoaded, function () {                    document.removeEventListener(DOMContentLoaded, arguments.callee, false);                    callback();                }, false)            }             //兼容IE            else if (document.attachEvent) {                document.attachEvent(onreadytstatechange, function () {                      if (document.readyState == "complete") {                                document.detachEvent("onreadystatechange", arguments.callee);                                callback();                       }                })            }            else if (document.lastChild == document.body) {                callback();            }        }

document.ready这个函数是实现了。再来验证一下最上面所说的“ready要比onload先执行”

window.onload = function () {      alert(onload);};document.ready(function () {       alert(ready);});

 

jQuery domready