`

$(document).ready()

阅读更多
$(document).ready()

$(document).ready(function(){XX})

window.onload = function(){   if(document.readyState == "complete"){XX}}

http://www.cnblogs.com/lhb25/archive/2009/07/30/1535420.html

一、两者比较
1.执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

2.编写个数不同
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行

3.简化写法
window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});


二、解释
jQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之前执行。 (也许window.onload()能实现同样的功能,但当window.onload函数执行的时候,要说明所有东西已经载入,包括图像和横幅等等。要知道较大的图片下载速度会比较慢,因此用户必须等待大图片下载完毕才能看到window.onload()执行的代码效果,这样就花费了很长的等待时间,这不是我们想要的。)。
$(document).ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。 简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数.

$(document).ready(function(){
// 你的代码
}); 
       $(document)意思是说,获取整个网页文档对象(类似的于window.document),$(document).ready意思就是说,获取文档对象就绪的时候。 
       上面这段代码的意思是检查文档对象直到它能够允许被操作(译者注:这样做比window.onload()函数要快的多,因为只要文档对象载入完成就能够执行代码了,而不需要等待页面中的图片下载是否已经完成)---这是我们想要的。


三、bind函数的参数传递问题
bind函数的定义: $(selector).bind(event,[data,]function)
function句柄中调用的this参数 不是绑定的元素,而是bind绑定的事件
想再函数句柄中传递参数 可以采用下面的方法, 个人偏向第二种方法,代码易读、简单
1. 默认方法 event.data
想传递参数给function 可以通过data传递,function中 event.data.* 来调用
$(“#id”).bind(“click”, { a: $(“#id”).val() } ,function(){alert(event.data.a)});
2. 全局变量
var a = $(“#id”).val();
$(“#id”).bind(“click”, function(){alert(a)});
3. 内部函数
$(“#id”).bind(“click”, function(){Say (“id”)});
function Say(id){alert( $(“#”+id).val() )}



四、Demo
demo01:
JQuery API对 $(document).ready() 的解释是:当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
我的理解:$(document).ready() 用于当前页面加载完成后,就执行其定义的方法,用于异步加载,提交页面响影的速度,用于在一个页面中包含多个页面的情况(一个页面中使用多个iframe)。

1. 将页面中使用iframe的地方使用div代替;并定义div的ID属性。代码示例如下:
 
<div id="MyNoticesDiv" width="100%" height="195px"></div>

<script language="JavaScript" type="text/javascript">
	$(document).ready(function(){ 
		$.ajax({			url : '${base}/merchantHome/findMyNotices.action?merchantNoticeDto.limit=3',
			type : 'post',
			dataType : "text",
			success : function(text) {
				isPro = false;
				if(null != text && "" != text){
					$('#MyNoticesDiv').html(text);				}
			}
		});		
	})
</script>

2.页面完成后,通过js再加载div中要显示的内容。

demo02















分享到:
评论

相关推荐

    ionic中的$ionicPlatform.ready事件中的通用设置

    $ionicPlatform.ready事件是用于检测当前的平台是否就绪的事件,相当于基于document的deviceready事件, 在app中一些通用关于设备的设置必须在这个事件中处理, 为了代码的可读性,我们把设置功能封装成一个方法, 只要...

    jQuery(document).ready(function($) { });的几种表示方法

    在写jquery的时候,因为平时用sublime text快捷键生成jQuery(document).ready(function($) { });,所以忘记了其他的几种表示方法,今天花了几分钟特意记录了一下。

    jquery操作菜单

    $(document).ready(function(){ $(".menu ul li ul").hide(); $(".menu&gt;ul&gt;li&gt;a").on('click',function(){ $(".menu&gt;ul&gt;li&gt;a").css('background-image',"url('../image/collapsed.gif')"); $(".menu ul li ul...

    $(document).ready(function() {})不执行初始化脚本

    今天发现一个页面始终不执行$(document).ready(function() {})初始化脚本,下面是解决方法

    Jquery中$(document).ready(function(){ })函数的使用详解

    jQuery(document).ready(function(){}); 使用jQuery的好处是它包装了各种浏览器版本对DOM对象(javascript的DOM对象你应该知道吧,就是它了)的操作. 比如jquery写法:$(“div p”); // (1)$(“div.container”); // ...

    jQuery之$(document).ready()使用介绍

    学习jQuery的第一件事是:如果你想要一个事件运行在你的页面上,你必须在$(document).ready()里调用这个事件。所有包括在$(document).ready()里面的元素或事件都将会在DOM完成加载之后立即加载,并且在页面内容加载...

    JQ中$(window).load和$(document).ready区别与执行顺序

    JQ中的$(document).ready()大家应该用的非常多,基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).load相对出现的次数就很少了,下面为大家介绍一下两者的区别与他们的执行顺序 ...

    多个$(document).ready()的执行顺序实例分析

    本文以实例形式说明了多个$(document).ready()的执行顺序问题,由实例可以看出多个$(document).ready()的执行顺序并非单纯的顺序执行,其与嵌套层级也有一定的关系。具体实例代码如下: &lt;html&gt; &lt;head&gt; ...

    浅析document.ready和[removed]的区别讲解

    jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行。比如在”jQuery基础 – 如何开始”一文里,我用到如下jQuery代码: 代码如下:&lt;!– $(document).ready(function ()  {   ...

    JQuery 引发两次$(document.ready)事件

    页面大概是这样的,一个Partial View,而这个View包含了一小段绑定Search的Javascript,并且用... 做了实验,代码如下: 代码 代码如下: [removed] $(document).ready(function() { $(“#a1”).appendTo($(“#a2”));

    JQuery下关于$.Ready()的分析

    $(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法 接触JQuery一般最先学到的是何时启动事件。在曾经很长一段时间里,在页面载入后引发的事件都被加载在”Body”的Onload事件里. 对于Body的Onload事件...

    jquery的$(document).ready()和onload的加载顺序

    网上普遍的说法是$(document).ready()是在页面DOM解析完成后执行,而onload事件是在所有资源都准备完成之后才执行,也就是说$(document).ready()是要在onload之前执行的,尤其当页面图片较大较多的时候,这个时间差...

    CSS3的仿windows8 Metro风格界面布局效果.zip

    $(document).ready(function () { var $box = $('.box'); $('.metro li').each(function () { var color = $(this).css('backgroundColor'); var content = $(this).html(); $(this).click(function ()...

    用javascript实现jquery的document.ready功能的实现代码

    实现jQuery的document.ready功能js代码

    比Jquery的document.ready更快的方法

    个是上次在博客园看到的一篇文章,经测试,确实比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流浏览器上都没问题

    jQuery 的 ready()的纯js替代方法

    ready 方法是 jQuery 实现的在 html 页面在 DOM...$(document).ready(function() { // 在 .ready() 被触发时执行. }); 在 jQuery 3.0 中 ready() 的变化 在 jQuery 3.0 发布之前, 有以下几种 ready 方法的使用方式:

Global site tag (gtag.js) - Google Analytics