锋利的jQuery-4--$(document).ready()和window.onload方法的区别
jQuery中的$(document).ready()和JavaScript中的window.onload方法主要有两个方面的不同:
1.执行时机:
onload : 网页中所有的元素和元素的关联文件(包括图片)等完全加载完毕后才执行。
$() : 在dom完全加载完毕后就可调用,此时,网页中的所有元素都是可以被jQuery访问的,但不意味着元素的关联文件都已加载完毕。
注意:
由于在$()方法内注册的事件,只要dom就绪就会被执行,因此可能此时元素的关联文件未下载完成。
例如与图片有关的html下载完毕,并且已经解析为dom树,但很有可能图片还未加载完毕,所以例如图片的宽度和高度这样的属性获取不一定有效。
要解决这个问题可以使用jQuery中的load方法:
load()方法会在元素的onload事件中绑定一个处理函数,如果处理函数绑定给window对象,则会在所有内容(包括窗口,框架,对象和图片等)加载完毕后触发。如果绑定到某个元素上,则会在元素的内容加载完毕后触发。
$(window).load(function(){
});
//等价于javascript中代码
window.onload = function(){
}
2.多次使用:
onload : 只能保存对一个函数的引用,多次调用会产生覆盖。
function one(){
alert("one");
}
function two(){
alert("two");
}
window.onload = one;
window.onload = two;
//只弹出two对话框
为了达到两个函数顺序触发的效果,需要再建一个函数
window.onload = function(){
one();
two();
}
如果有多个JavaScript文件,每个文件都需要用到window.onload()方法,这种情况用上边的方法会非常麻烦。
$() : 可以多次调用,每次调用都是在现有的行为上追加,注册的函数会按照代码中的先后顺序依次执行。
$(function(){
one();
});
$(function(){
two();
});
//依次弹出one, two。
注意:
请确保在body元素的onload事件中没有注册函数,否则不会触发$()事件。
锋利的jQuery-4--$(document).ready()和window.onload方法的区别的更多相关文章
- $(document).ready() 与 window.onload 之间的区别
1.执行时机 window.onload 是网页中所有的元素都加载到浏览器后才执行 $(document).ready() 是dom完全就续就可以调用 例如:如果给一副图片添加点击事件,window. ...
- $(document).ready和window.onload,细微小区别,ready是jQuery的方法,onload是window的方法
$(document).ready和window.onload的区别 $(document).ready和window.onload都是在都是在页面加载完执行的函数,大多数情况下差别不大,但也是有区别 ...
- jQuery中$(document).ready()和window.onload的区别?
document.ready和document.load的区别?(JQ中的$(document).ready()和window.onload的区别?) window.onload,是采用DOM0级事件 ...
- $(document).ready和window.onload 简单分析区别
<锋利的JQuery>翻开没看几页,就遇到了这个神奇的问题,之前在橙旭园学习的时候,JQuery只教了一些基础的,像链式操作等,那时以为这个和window.onload()差不多一模一样, ...
- 【jquery】$(document).ready() 与window.onload的区别
Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1)执行时间 wind ...
- jquery中 $(document).ready()和window.onload的区别
1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 ...
- $(document).ready() 和 window.onload 方法比较
说明 页面加载文档完毕后,浏览器会通过 Javascript 为 DOM 元素添加事件. Javascript 使用 window.onload 方法,而 jQuery 使用 $(document). ...
- $(document).ready()和window.onload方法
引用:http://www.jb51.net/article/21628.htm Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload ...
- document.ready(function(){}),window.onload,$(function(){})的区别
https://blog.csdn.net/qkzhx0516/article/details/79236514
随机推荐
- 如何自定义kindeditor编辑器的工具栏items即去除不必要的工具栏或者保留部分工具栏
kindeditor编辑器的工具栏主要是指编辑器输入框上方的那些可以操作的菜单,默认情况下编辑器是给予了所有的工具栏.针对不同的用户,不同的项目,不同的环境,可能就需要保留部分工具栏.那么我们应该如何 ...
- 执行mount命令时找不到介质或者mount:no medium found的解决办法
使用vmware时,在虚拟机设置里,设置CD/DVD为系统镜像,挂载时,有时会有找不到介质或者no medium found之类的提示. 根本原因是iso镜像并没有加载到虚拟机系统内. 解决办法: 首 ...
- Sublime Text 3使用参考手册
什么是Sublime Text? Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是 ...
- [工具类]获取url中参数列表
写在前面 在项目中经常用到解析url中参数的逻辑,今天先下载就自己封装了一个方法,方便以后使用的时候,信手拈来.当然这里给出的方法是针对常见的url参数类型的,对于重写url,或者路由格式的不考虑. ...
- EntityFramework_MVC4中EF5 新手入门教程之一 ---1.创建实体框架数据模型
Contoso University Web 应用程序 你会在这些教程中构建的应用程序是一个简单的大学网站. 用户可以查看和更新学生. 课程和教师信息.这里有几个屏幕,您将创建. 这个网站的用户界面 ...
- WCF 入门 (17)
前言 看的是入门视频,就希望培养一个学习的习惯吧. 前段时间看了微软的SurfaceBook的视频,被惊艳到了,但是我没钱买啊... 第17集 WCF中未经处理的异常 Unhandled except ...
- 关于js的string的3个函数slice,substring,substr对比
slice,substring,substr三个函数都是截取字符串,但是对参数的处理有区别 参数处理相似的两个函数式slice和substring slice(start,end)和substring ...
- 转-sql中的case when的用法
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...
- XMLHttpRequest的POST中文表单问题解决方案
XMLHttpRequest的POST中文表单问题解决方案 由于XMLHttpRequest POST的内容是用UTF-8编码,所以在服务端要先把request的编码改为UTF-8. 而且客户端pos ...
- .net架构设计读书笔记--第二章 第7节 神化般的业务层
一.编排业务逻辑的模式1. 事务脚本模式TS(The Transaction Script pattern ) TS模式概述 TS 鼓励你跳过任何的面向对象的设计,你直接到所需的用户操作的业务 ...