window.onload 应该都知道了,不过此事件要在DOM完全加载完毕,包括图片都加载完毕才触发,如果我们有事情需要注册到onload上,有时恐怕得等到黄瓜菜都凉了。于是这时 DOMContentLoaded 翩翩而来,此事件在 DOM 加载完毕(不包括图片都加载完毕)后触发,正合要求,但很不幸的是此事件IE不支持。下面来看看JQuery的如何解决这个问题,废话不说,直接看代码
ready: function( fn ) {
// 绑定监听
jQuery.bindReady();
// 如果 DOM 加载完毕
if ( jQuery.isReady ) {
// 立即执行方法
fn.call( document, jQuery );
// 否则,将需要执行的方法保存起来
} else if ( readyList) {
// 保存方法到 list 中
readyList.push( fn );
}
return this;
}
那么看看这个 bindReady 方法
bindReady: function() {
// 设置是否已经绑定的标识符
if ( readyBound ) {
return;
}
readyBound = true;
// 如果文档加载完毕,执行注册保存的方法
if ( document.readyState === "complete" ) {
return jQuery.ready();
}
// Mozilla, Opera 和 webkit nightly 之流的浏览器支持 DOMContentLoaded 事件
if ( document.addEventListener ) {
document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
// 如果注册 DOMContentLoaded 事件句柄失败,注册到 window 的 onload 上作为后手
window.addEventListener( "load", jQuery.ready, false );
// 如果是传说中万恶的 IE
} else if ( document.attachEvent ) {
// 如果是 iframe, 绑定到 onreadystatechange, 会在 window.onload 前触发
document.attachEvent("onreadystatechange", DOMContentLoaded);
// 同样注册到 onload 上作为后手
window.attachEvent( "onload", jQuery.ready );
// 如果不是一个 iframe,检查 DOM 是否加载完毕
var toplevel = false;
try {
toplevel = window.frameElement == null;
} catch(e) {}
if ( document.documentElement.doScroll && toplevel ) {
// 在此方法中检查 DOM 是否加载完毕
doScrollCheck();
}
}
}
最后看看 doScrollCheck 方法是何方神圣。
// 检查 DOM 是否加载完成,与 DOMContentLoaded 事件类似
function doScrollCheck() {
// 再次判断一下
if ( jQuery.isReady ) {
return;
}
try {
// 如果是IE,使用 Diego Perini 的一个 hack 技术,原理是执行 doScroll方法,如果可执行说明 DOM 加载完毕
// http://javascript.nwbox.com/IEContentLoaded/
document.documentElement.doScroll("left");
} catch( error ) {
// 如果未加载完毕,轮询之
setTimeout( doScrollCheck, 1 );
return;
}
// 执行注册保存的方法
jQuery.ready();
}
分享到:
相关推荐
《jQuery 1.4.2:深入解析与应用》 jQuery 1.4.2 是一个里程碑式的版本,它在JavaScript库的世界中占有重要地位,为开发者提供了强大的DOM操作、事件处理、动画效果以及Ajax交互等功能。这个版本的发布极大地简化了...
《jQuery 1.4.2 库:中文参考手册详解》 jQuery,作为一款轻量级的JavaScript库,因其简洁的API和强大的功能而深受开发者喜爱。本文将深入探讨jQuery 1.4.2版本,这是一个在2010年发布的经典版本,尽管后续有更多...
Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使...
**jQuery 1.4.2 帮助文档** jQuery 是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画以及Ajax交互。版本1.4.2是该库的一个重要里程碑,引入了许多增强和修复,旨在提高性能和稳定性。...
**jQuery 1.4.2 API简体中文版** jQuery是一个强大的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作以及Ajax交互。jQuery 1.4.2是该库的一个重要版本,提供了许多增强功能和修复了1.4版本中发现的...
附件里里面有 jquery-1.4.2.js jquery-1.4.2.min.js jquery-1.4.2-vsdoc.js JQuery_1.4.2_API.chm 在VS2008里引用jquery-1.4.2.js和jquery-1.4.2-vsdoc.js,可以支持jquery方法的智能提示。
这个“jQuery 1.4.2 版本.zip”压缩包包含了jQuery库的两个核心文件:`jquery-1.4.2.js`和`jquery-1.4.2.min.js`。 **jQuery 1.4.2**: 在2010年,jQuery发布了1.4.2版本,这是一个里程碑式的更新,它带来了许多...
**jQuery 1.4.2 中文手册**是开发者学习和使用jQuery库的重要参考资料,它提供了详尽的API文档和示例,帮助开发者理解和运用jQuery的各种功能。jQuery是一款高效的JavaScript库,它简化了HTML文档遍历、事件处理、...
《JQuery 1.4.2 API chm:实例丰富的技术宝典》 JQuery,作为一款广泛应用于前端开发的JavaScript库,极大地简化了DOM操作、事件处理、动画设计和Ajax交互。JQuery 1.4.2 API是开发者的重要参考资料,其中包含了...
《jQuery 1.4.2:核心特性与实践解析》 jQuery,作为一款广泛使用的JavaScript库,极大地简化了网页的DOM操作、事件处理、动画设计和Ajax交互。本篇文章将聚焦于jQuery 1.4.2版本,深入探讨其关键特性和实际应用,...
《jQuery 1.4.2:深入理解与应用》 jQuery是JavaScript库的杰出代表,以其简洁的API和强大的功能赢得了开发者们的广泛喜爱。这里我们关注的是jQuery 1.4.2版本,它包含了四个核心文件,分别是: 1. **jquery1.4.2....
《jQuery 1.4.2:深入理解与应用》 jQuery是JavaScript库的杰出代表,以其简洁、易用的API闻名于世。本篇将详细探讨jQuery 1.4.2这一经典版本,以及其对应的压缩文件jquery.min-1.4.2.js。 一、jQuery的核心理念 ...
jQuery1.4.2是jQuery库的一个早期版本,发布于2010年,它为开发者提供了丰富的功能,简化了JavaScript编程,特别是处理DOM操作、事件处理、动画效果以及Ajax交互。以下是对jQuery1.4.2类库的详细解析: 1. **选择器...
jquery1.4.2和中文APIjquery1.4.2和中文APIjquery1.4.2和中文APIjquery1.4.2和中文APIjquery1.4.2和中文APIjquery1.4.2和中文API
jquery-1.4.2.js jquery-1.4.2.min.js jquery-1.4.2-vsdoc.js 中文版vsdoc jquery-1.4.2-vsdoc_en.js jquery.cookie.js
jquery1.4.2.min.js jquery
在本文中,我们将深入探讨jQuery1.4.2版本,这是jQuery历史上的一个重要里程碑,它引入了许多增强功能和性能优化。 一、jQuery核心概念 1. 选择器:jQuery的核心在于它的选择器,它允许开发者用CSS样式的语法来选取...
《jQuery 1.4.2:深入理解与应用》 jQuery是JavaScript库中的翘楚,以其简洁的API和强大的功能赢得了开发者们的广泛喜爱。这里我们主要关注的是jQuery 1.4.2版本,包括核心库文件`jquery-1.4.2.js`以及辅助开发的`...
**jQuery 1.4.2** 是一个历史悠久但仍然具有影响力的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。这个版本发布于2010年,是jQuery的一个中期版本,提供了许多改进和新功能。...