jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})

来源:互联网 发布:淘宝买家秀怎么发 编辑:程序博客网 时间:2024/04/28 10:44

1、(function($) {…})(jQuery);

它是 $(document).ready() 的简写,同时内部的 jQuery 代码依然使用 $ 作为别名,而不管全局的 $ 为何。

在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。

比如:

var i=3;  
function init(){  
    alert("外层init:"+i);  
}  
(function($) {  
    var i=2;  
    function init(){  
        alert("内层init:"+i);  
    }  
  
    init();  
})(jQuery);  
init();


执行结果:

内层init:2

外层init:3


2.现在来讨论下在 Jquery 中两个页面载入后执行的函数。

  1).
$(document).ready(function(){
  // 在这里写你的代码...
});在DOM加载完成时运行的代码


可以简写成


jQuery(function(){ 
}); 


  2).
(function($) {})(jQuery)什么意思?
其实际上是执行()(param)匿名方法,只不过是传递了jQuery对象。
相当于 两句:
function aa($){};
aa(jQuery);
是初始化jQuery对象的惯用方法.
通俗点说就是在页面加载完成后执行你需要的代码. 
不过这个东西,有的时候会使页面跳动,很多JQUERY插件都是在加载完成后,才改变样式的,页面会有跳动或闪动的感觉.比如ui.tab这个插件,页面元素一多,全部显示出来了,它才形成TAB。

(funtion(){})();立即执行函数;相当于先申明一个函数,声明完后直接调用;
比如:
(funtion(str){alert(str)})("output"));相当于:funtion OutPutFun(str){alert(str);};OutPutFun("output");

jQuery(function(){});用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。 
(function(){})(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。 

阅读全文
0 0
原创粉丝点击