$(window).load(function(){})和$(document).ready(function(){})

2016-02-19 14:21 0 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的$(window).load(function(){})和$(document).ready(function(){})懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

在我以前的开发中,一般用到javascript,我都是采用jquery的模式,也就是大多数时候,第一行写的是:

$(document).ready(function(){

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)
...
});这个时候,不一定要等所有的js和图片加载完毕,就可以执行一些方法,不过有些时候,必须要等所有的
 元素都加载完毕,才可以执行一些方法的时候,比如说,部分图片或者什么其他方面还没有加载好,这个时候,点击某些按钮,会导致出现意外的情况,这个时候,就
 需要用到:
 $(window).load(function() {
$("#btn-upload").click(function(){   //比如说:
uploadPhotos();
});
 
});
 
 下面是转载的内容,用$(window).load(function(){...})而不用body.onload()的几个理由

首先它们都是在页面所有元素(包括html标签以及引用到得所有图片,Flash等媒体)加载完毕后执行的,这是它们的共同点.

 

不用body.Onload()理由1:

如果我们想同时加载多个函数,我们必须这样写

body onload="fn1(),fn2()"/body看起来极其丑陋,如果用$(window).load()我们可以这样加载多个函数

 $(window).load(function() {
            alert("hello,我是jQuery!");
  });
 $(window).load(function() {
        alert("hello,我也是jQuery");
 });

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

这样写它会从上往下执行这两个函数,并且看起来漂亮多了.

 

不用body.Onload()理由2:

用body.Onload()不能够做到js和html完全分离,这是一个很严重的问题.

另外用$(window).load(function(){...})和body.onload()都存在同样一个问题,因为开始也说到了,它们都需要等到页面的所有内容

加载完毕才执行,但是如果当网速比较慢的时候,加载一个页面往往需要较长的时间(几秒到十几秒不等,甚至更长...),所以我们经常

会遇到页面还没有完全加载完毕而用户已经在操作页面了这种情况,这样页面表现出来的效果就跟我们预期的效果不一样了,

所以在这里我推荐使用$(document).ready(function(){}),或简写为$(function(){}),因为他会在页面的dom元素加载完毕后就执行,

而无需等到图片或其他媒体下载完毕.

但是有时候确实我们有需要等到页面的所有东西都加载完后再执行我们想执行的函数,所以是该使用$(window).load(function(){...})还是

该使用$(function(){})往往需要结合具体需要而作不同的选择.

最后附上一段在所有DOM元素加载之前执行的jQuery代码

script type="text/javascript"

(function() {
            alert("DOM还没加载哦!");
        })(jQuery)
  /script

来源:https://www.tulaoshi.com/n/20160219/1606827.html

延伸阅读
标签: Web开发
种语法是什么意思(function(){})() 如下例: script language="JavaScript" (function(){ document.write("some script code"); })() /script script language="JScript" type="Text/JScript" !-- var a=(function(s){return s})("abc"); alert(a); var b=function(s){return s}; ...
标签: Web开发
function test(){ return 123; } 显然这是一个函数声明,那下面的呢 var b=function(){return 123}; 这个大家就怀疑了,好似不是声明,因为函数没有名字,只是一个匿名函数,好,再看 var b=function test(){return 123}; 这个到底是不是函数声明呢,好象是,那我回答你"不是" alert(test); var ...
标签: Web开发
页面大概是这样的,一个Partial View,而这个View包含了一小段绑定Search的Javascript,并且用Jquery-ui 的dialog 包含,而且确定不是ASP.net mvc生成HTML的问题,HTML是依照我的想法生成的,后来实在没有办法,把dialog的代码去掉,Search按就正常了。查了一下dialog的代码,发现 是appendTo引发的。 做了实验,代码如下: 代码 代码如下...
一.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次: class A { public: virtual void foo() { cout "A::foo() is called" endl;} }; class B: public A { public: v...
经常有兄弟遇到这个问题,装了apache+mysql+php,很高兴的去用bbs什么的,发现不能运行,而phpinfo函数显示的是正常的,现把问题解决方案贴出来,以备大家查询。 1、原因:安装php的时候没有加入PERL_REGEXT的支持,也就是所谓的perl兼容正则表达式 2、首先确保您的php是以mod_php来安装的。 [code:1:e8270bf028] cd /usr/ports/www/mo...

经验教程

106

收藏

10
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部