zoukankan      html  css  js  c++  java
  • jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别

    Jquery是优秀的Javascrīpt框架。我们现在来讨论下在 Jquery 中两个页面载入后执行的函数。

    $(document).ready(function(){
      // 在这里写你的代码...
    });

    在DOM加载完成时运行的代码

    可以简写成

    jQuery(function(){ 
    });

    (function($) {})(jQuery)什么意思?

    (function(){ 
    })(jQuery);

    其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。

    相当于

    function aa($){} 
    aa(jQuery)

    是初始化jquery对象的惯用方法.

    通俗点说就是在页面DOM加载完成后(不包括图片下载完成)执行你需要的代码,由于不包括图片下载,所以比window.onload效率高.
    不过这个东西,有的时候会使页面跳动,很多JQUERY插件都是在加载完成后,才改变样式的,页面会有跳动或闪动的感觉.比如ui.tab这个插件,页面元素一多,全部显示出来了,它才形成TAB,很晕的说

    (function(){})();
    立即执行函数;相当于先申明一个函数,声明完后直接调用;

    如果参数如:

    (function(str){alert(str)})("output"));
    相当于:
    function OutPutFun(str){alert(str);};OutPutFun("output");

    总结:

    1.

    jQuery(function(){ });

    用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。

    2.

    (function(){ })(jQuery);

    用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。

    开发插件的格式如下:

    (function ($) {
            $.fn.test111 = function () {
                alert('test')
            }
        })(jQuery);

    调用插件

    $("#elementid").test111();


    --------------------------------------------------------------------------------


    (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下看。
    这里实际上是匿名函数 function(arg){...} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
    而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery.
    等同于 var fn = function($){....}; fn(jQuery);
    (funtion(){})();立即执行函数;相当于先申明一个函数,声明完后直接调用;
    如果参数如:
    (funtion(str){alert(str)})("output"));相当于:funtion OutPutFun(str){alert(str);};OutPutFun("output");

  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/poissonnotes/p/3548044.html
Copyright © 2011-2022 走看看