1.首先说JQuery的几个写法 

$(function(){
      //do someting
   });
   $(document).ready(function(){
      //do someting
   });
   $().ready(function(){
    //do someting
  })

这三种方法都是JQuery的方法,写法不一样,但是效果一样。

 2.这三个写法和$(window).load(function(){...})、onload()的区别

2.1.加载多个函数的问题

  <body onload="a();b();">
  </body>
  在Onload事件中只能这样加载,很丑陋…而在JQuery中你可以利用多个JQuery.Ready()方法,它们会按次序依次执行

2.2代码和内容不分离
      这个貌似不用说了,让人深恶痛绝-.-!!

3.3执行先后顺序不同
            对于Body.Onload事件,是在加载完所有页面内容才会触发,我的意思是所有内容,包括图片,flash等.如果页面的这些内容很多会让用户等待很长时间.
       而对于$(document).ready()方法,这个方法只是在页面所有的DOM加载完毕后就会触发,无疑很大的加快了网页的速度.
       但是对于一些特殊应用,比如图片的放大缩小,图片的剪裁。需要网页所有的内容加载完毕后才执行的呢?我推荐使用$(window).load()方法,这个方法会等
       到页面所有内容加载完毕后才会触发,并且同时又没有OnLoad事件的弊端.

3.(function($){})(jQuery)

(function() {
      alert("hi");//不一定在dom加载完执行,所以要操作dom对象时需要注意
  })(jQuery)

3.1首先(function(){})()这种写法 是创建了一个匿名的方法并立即执行(function(){})这个是匿名方法后面的括号就是立即调用了这个方法)。这样做可以创建一个作用域以保证内部变量与外部变量不发生冲突,比如$ jQuery 等jquery内部定义的变量。

3.2 (function($){})(jQuery) 这个写法主要的作用还是保证jquery不与其他类库或变量有冲突 首先是要保证jQuery这个变量名与外部没有冲突(jquery内部$与jQuery是同一个东西 有两个名字的原因就是怕$与其他变量名有冲突二jQuery与其他变量冲突的几率非常小)并传入匿名对象,匿名对象给参数起名叫做$(其实和jquery内部是一样的) 然后你就可以自由的在(function($){})(jQuery)里写你的插件而不需要考虑与外界变量是否存在冲突。

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script type="text/javascript" src="jquery-1.7.2.min.js" charset="utf-8" ></script>
</HEAD>
<BODY onload="alert('onload')">
<script type="text/javascript" charset="utf-8" > $(function(){
alert("$(function()");
});
$(document).ready(function(){
alert("$(document).ready");
});
$().ready(function(){
alert("$().ready(function()");
})
//上面三个方法是级别是一样的,按代码的先后顺利执行,是在dom对象加载完 $(window).load(function() {
alert("$(window).load(function()");//是在图片,flash等加载完执行
}); (function() {
alert("hi");//不一定在dom加载完执行,所以要操作dom对象时需要注意
})(jQuery) //弹出先后顺利是:hi-> $(function() -> $(document).ready -> $().ready(function() -> onload -> $(window).load(function()
</script> </BODY>
</HTML>

<转载自:http://www.cnblogs.com/allensoft/archive/2014/04/10/3656202.html>

随机推荐

  1. Jenkins 1.x权限配置(兼容2.x)

    说明: 1.x版本的jenkins默认是没有任何权限限制,任何人都可以访问. 需要用到的插件: [Role-based Authorization Strategy] 具体配置: 0.设置Jenkin ...

  2. PHP Lex Engine Sourcecode Analysis(undone)

    catalog . PHP词法解析引擎Lex简介 . PHP标签解析 1. PHP词法解析引擎Lex简介 Relevant Link: 2. PHP标签解析 \php-5.4.41\Zend\zend ...

  3. Unity 联网小测试(WWW)

    研究了很多联网的方式,甚至把TCP/IP,shock,HTTP的关系都搞清楚了,终于弄明白怎么在Unity中用GET或POST的方式通信了,还是有点小激动的,但是不排除有更好的方式,听说Unity还是 ...

  4. python使用cookielib库示例分享

    Python中cookielib库(python3中为http.cookiejar)为存储和管理cookie提供客户端支持,下面是使用示例 该模块主要功能是提供可存储cookie的对象.使用此模块捕获 ...

  5. JSP+JavaBean+Servlet实现各类列表分页功能

    需求: 每页列表下都有一个分页的功能,显示总数量.当前页/总页数.首页.上一页.下一页.最后一页.GO到第几页 效果动态图: 实现思路: 因为每个列表页都需要,在每个出列表页数据的servlet中都要 ...

  6. 初识PHP

    初识PHP 虽然是做前端的,可是平时看书.做项目都会与后端PHP相关,但却不是很了解,并经常听PHP大神说:PHP是世界上最好的语言!因此,通过这篇博文学习.总结PHP,来认识认识这个“世界上最好的语 ...

  7. [转发]黑苹果修改DSDT彻底解决关机不断电和睡眠问题

    1. 在 Method (_PTS, 1, NotSerialized)之前添加一个OperationRegion (PMRS, SystemIO, 0x0430, 0×13),如下: Operati ...

  8. PHP设计模式-策略模式 转

    策略模式(Strategy Pattern) 策略模式是对象的行为模式,用意是对一组算法的封装.动态的选择需要的算法并使用. 策略模式指的是程序中涉及决策控制的一种模式.策略模式功能非常强大,因为这个 ...

  9. Java数据结构——用链表实现栈

    //================================================= // File Name : LinkStack_demo //---------------- ...

  10. Java可变参数传递中可以接收多个对象