在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');
});

最新文章

  1. 占位符行为 PlaceHolderBehavior 的实现以及使用
  2. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
  3. ASP.NET SignalR
  4. 对copy、mutableCopy理解
  5. php 之跨域上传图片
  6. MATLAB中提供的线型属性
  7. C/C++ 动态存储分配
  8. java .net compartion
  9. Web流程
  10. 网页js生成当前年月日 星期
  11. php笔记03:布尔类型,字符串,浮点数
  12. 记录下url拼接的多条件筛选js
  13. B实习面试
  14. webpack搭建服务器,随时修改刷新
  15. 自定义BaseServlet利用反射
  16. BZOJ_4196_[Noi2015]软件包管理器_树链剖分
  17. 第20章 定义客户端 - Identity Server 4 中文文档(v1.0.0)
  18. Mysql函数大全以及存储过程、函数、触发器、游标等等
  19. 一文弄懂神经网络中的反向传播法(Backpropagation algorithm)
  20. Eclipse配置Python的IDE

热门文章

  1. p2 钢体
  2. 中国省市 Json 二级联动
  3. 第199天:js---扩充内置对象功能总结
  4. Underscore.js工具库
  5. UVA11736_Debugging RAM
  6. puthon进程开发
  7. Cornfields POJ - 2019(二维RMQ板题)
  8. hadoop(五)HDFS原理剖析
  9. 解题:APIO 2008 免费道路
  10. 【learning】01分数规划