JQuery学习一【window.onload函数与$(document).ready()的区别】

1、window.onload函数是传统JavaScript自带的方法,该方法必须等待网页中所有内容[包括图片]加载完毕后才能执行;其在页面中不能同时编写多个.

2、$(document).ready()函数是JQuery提供的文档就绪函数,等待网页中的所有DOM元素解析完毕之后执行;可能DOM元素关联的其他东西并没有加载完成。

说明:例如某大型图库网站要为所有的图片添加行为事件(例如:点击隐藏或显示);如果使用window.onload方法来实现,则必须等该网页每一幅图片全部加载完毕后才可以进行操作;若是采用JQuery的$(document).ready()来实现,则只需要等待DOM解析就绪就可以对其进行操作,不需要等待所有图片都下载完毕。(显然解析网页为DOM树的速度比等待网页加载所有关联文件下载完毕的速度要快的多)

问题一: 在$(document).ready()方法内注册事件时,只要DOM解析完毕就会执行;如果出现与图片有关的HTML下载完毕,并且解析为DOM树了,但是图片还未加载完毕;此时图片的宽度和高度属性此时不一定有效,此时可以使用JQuery的load()方法来解决。关于load()方法执行是在元素的onload事件中添加一个处理函数,如果处理函数绑定给window,则会在所欲的内容[窗口、框架、对象和图像]加载完毕后触发,若只作用在某个元素上,则会在该元素加载完毕后触发。【$(window).load(function(){})等价于window.onload = function(){}】

问题二: window.onload 事件一次只能保存对一个函数的引用;若重复实现该事件,后面的函数引用将覆盖前面的函数;而JQuery提供的$(document).ready()函数在每次调用该方法时都会在现有的行为上追加新的行为,这些行为函数会根据注册的顺序依次执行。

例如:

function one(){alert("one")};

function two(){alert("two")};

window.onload = one;

window.onload = two;

输出结果:two 【因为后面的two函数覆盖了前面one函数,而是用$(document).ready()则不会出现该情况.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值