对元素的操作和事件的绑定需要等待一个合适的时机,可以看下面的例子:

<!DOCTYPE html>
<metacharset="utf-8">
<html>
<head><title>1-1</title><scripttype="text/javascript">document.getElementById("panel").onclick= function() {alert("元素已经加载完毕 !");}/*执行错误*/</script>
</head>
<body><divid="panel">click me.</div>
</body>
</html>

如果这样,还没有等待元素加载完就绑定事件,浏览器Console中会报错:

TypeError: document.getElementById(...) is null
更改一下时机,下面三个程序都是可以成功绑定事件的,点击元素之后会弹出相应的alert().
第一种是把事件绑定放在body里,元素之后:
<!DOCTYPE html>
<metacharset="utf-8">
<html>
<head><title>1-2</title>
</head>
<body>
<divid="panel">click me.</div>
<scripttype="text/javascript">document.getElementById("panel").onclick= function() {alert("元素已经加载完毕 !");}/*正确执行*/
</script>
</body>
</html>

第二种是放在window.onload中进行事件绑定:

<!DOCTYPE html>
<metacharset="utf-8">
<html><head><title>1-3</title><scripttype="text/javascript">window.onload= function() {document.getElementById("panel").onclick= function() {alert("元素已经加载完毕 !");}}</script>
</head><body>
<divid="panel">click me.</div>
</body></html>

第三种是jQueryready()方法传入绑定事件的方法:

<!DOCTYPE html>
<metacharset="utf-8">
<html>
<head><title>Panel</title><scriptsrc="jquery-1.11.2.js"type="text/javascript"></script><scripttype="text/javascript">$(document).ready(function() {document.getElementById("panel").onclick= function() {alert("元素已经加载完毕 !");}})</script>
</head>
<body><divid="panel">click me.</div>
</body>
</html>

jQuery $(document).ready()和window.onload

根据ready()方法的API说明http://api.jquery.com/ready/。

这个方法接收一个function类型的参数ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded.

即当DOM加载完毕的时候,执行这个指定的方法。
因为只有document的状态ready之后,对page的操作才是安全的.
$(document).ready()仅在DOM准备好的时候执行一次.
与之相比,load事件会等到页面渲染完成执行,即等到所有的资源(比如图片)都完全加载完成的时候.
$(window).load(function(){…})会等整个页面,不仅仅是DOM,还包括图像iframes都准备好之后,再执行.
ready()是在DOM准备好之后就执行了,即DOM树建立完成的时候.所以通常ready()是一个更好的时机.
如果DOM初始化完成之后再调用ready()方法,传入的新的handler将会立即执行.
注意:ready()方法多次调用,传入的handler方法会串联执行(追加).
而JavaScript中,window.onload是赋值一个方法,即后面的会覆盖掉前面的.

$(document).ready()的三种简写

 $( document ).ready( handler )$().ready( handler ) (thisis not recommended)$( handler )

window对象和document对象

Window对象表示浏览器中打开的窗口: http://www.w3school.com.cn/jsref/dom_obj_window.asp
Document对象表示载入浏览器的HTML文档: http://www.w3school.com.cn/jsref/dom_obj_document.asp

Event对象

Event即事件,代表了各种状态:http://www.w3school.com.cn/jsref/dom_obj_event.asp
事件句柄使我们可以在事件发生的时候附加一些操作和处理,比如按钮点击事件发生的时候,进行什么什么操作.
上面的参考链接中含有一个属性列表,对应各种事件,可以利用这些属性定义事件的行为.
本文关注的onload就是其中一个事件.

onload事件

onload事件: http://www.w3school.com.cn/jsref/event_onload.asp
onload事件是在加载完成后立即发生.(注意其中的l是小写).
支持该事件的标签是:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
支持该事件的JavaScript对象是:image, layer, window.注意这里并没有document.

onload使用解析

最常用的就是window.onload, 会等到整个页面及各种资源都加载完成之后再执行后面赋值的function行为.
另外,可以在标签中使用onload,比如:
<bodyonload="inlineBodyOnloadTimeCounter();">

其中inlineBodyOnloadTimeCounter()是一个自定义的JavaScript function.
注意jQuery ready()的API文档中有这么一段:
The .ready() method is generally incompatible with the attribute. If load must be used, either do not use .ready() or use jQuery's .load() method to attach load event handlers to the window or to more specific items, like images.

说明ready()方法和<body οnlοad=“”>是不兼容的.

jQuery的$(document).ready()和JavaScript onload事件相关推荐

  1. 全面解析jQuery $(document).ready()和JavaScript onload事件

    这篇文章主要介绍了全面解析jQuery $(document).ready()和JavaScript onload事件的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下 对元素的操作和事件的绑 ...

  2. jQuery中$(document).ready()和window.onload的区别

     $(document) ready()和window onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onlo ...

  3. jquery 中 $(document).ready() 与window.onload 的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  4. jQuery中$(document).ready()和window.onload的区别?

    document.ready和document.load的区别?(JQ中的$(document).ready()和window.onload的区别?) window.onload,是采用DOM0级事件 ...

  5. HTML里Dom onload和jQuery document ready这两个事件的区别

    使用如下代码进行测试: <html> <script src="jquery_1.7.1.js"> </script> <script&g ...

  6. jquery $(document).ready() 与window.onload的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 > ...

  7. jquery $(document).ready()与window.onload的区别

    jQuery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  8. jquery (js中window.onload与jquery中$(document.ready())的区别)

    jquery 学习之一(js中window.onload与jquery中$(document.ready())的区别) 耳听为虚,眼见为实.通过下面的实例可查看两者的异同(注意:aa.jpg最好是一张 ...

  9. js中window.onload 与 jquery中$(document.ready()) 测试

    js中window.onload 与 jquery中$(document.ready())区别,验证代码如下(调换js代码和Jquer代码书写顺序测试,运行结果一样,因此与代码书写位置没关系): &l ...

最新文章

  1. c ef框架-mysql_.net EF框架 MySql實現實例
  2. sessionlistener方法中获取session中存储的值报空指针异常_从Golang实践中得到的教训...
  3. Spring Boot注解完成Restful API
  4. 向日葵远程使用备忘录
  5. linux Hello World 模块编程
  6. 小程序基础能力~网络
  7. python课程的中期报告_寒假中期学习报告
  8. 07Java Server Pages
  9. DirectAdmin面板在线解压缩的.tar.gz文件
  10. 所需即所获:像IDE一样使用 vim
  11. ddk开发 c语言,使用DDK提供的build进行编译驱动一点总结
  12. 精简win服务器系统,Windows Server 2016攻略—为云而生的极简平台Nano Server(2)
  13. 计蒜客 青出于蓝胜于蓝 dfs序+树状
  14. 2019 年第 32 周 DApp 影响力排行榜 | TokenInsight
  15. 如何在谷歌地图上标注宾馆饭店矢量点并叠加导出为图片
  16. iphone11拍照没有咔嚓声
  17. ruby调用python_ruby与python
  18. TensorFlow 2.X获取Flops和参数量(parameters)的方法(2022年)
  19. 数据分析之学术前沿分析 任务1:论文数据统计
  20. JustSoso笔记

热门文章

  1. html对图片轮播脚本怎么调用,【jquery前端开发】可调整的幻灯片(图片轮播)
  2. rust腐竹是什么意思_学习Rust 集合与字符串
  3. JAVA 开发axis2_基于Apache axis2开发Java Web服务
  4. 触发起名字使用正则_好名字一定在字音、字形、字意上比较吉利
  5. golang 切片 接口_如何理解Golang中的接口?
  6. android开发ui插件下载,TKUISDK-ANDROID
  7. Outlook 与 Outlook Express 的区别
  8. 如何实现一个简单的RPC
  9. 数据库发展研究报告(2021年)
  10. 2020新时尚之都指数报告