1 $(function(){});2(function ($) { })(jQuery);1与2写法的区别?对功能有何影响吗? 谢谢!

解决方案 »

  1.   

    1,是dom加载完成执行这个匿名函数
    2,是立即执行这个匿名函数,$ 是函数形参, jQuery 是传递给函数的参数
      

  2.   

    2,是立即执行这个匿名函数,$ 是函数形参, jQuery 是传递给函数的参数
    Acesidonu说的有道理:能不能详解下,实际的代码例子,如何来运用此写法,我验证了下,应该是立即执行,有可能DOM没加载完就执行了,比如addClass();有可能不起效果,
    $ 是函数形参, jQuery 是传递给函数的参数:不知如何运用???? 求解!!!
      

  3.   

    1 $(function(){});  是 $(document).ready(function(){});的简写
    2 (function ($) { })(jQuery);
    是用来扩展jQuery的,为jQuery添加属性或实例方法,
    (function ($) { 
        $.prop='自定义属性';
        $.fn.dostuff='自定义方法';
    })(jQuery);去看jQuery的插件扩展方法吧。
      

  4.   


    $.fn.dostuff=function(){
        alert('自定义方法');
    };
      

  5.   

    第二种写法
    主要还是为了,避免 $ 符号冲突。
    试想如果jquery框架和prototype框架同时在项目中的话,$代表的意义可能是模糊的(他们都用$表示)。可能代表prototype也可能代表jquery.
    第二种写法,$不会受影响,还是代表jQuery
      

  6.   

    看到兄弟们回复很感谢,请兄弟们自测下代码:
    1.$(function(){
       $("#userName").val("abcde");
    }); 加载向文本框赋值成功;2.(function($){
      $("#userName").val("abcde");
    })(jQuery);加载向文本框赋值不成功;
      

  7.   

    谢谢兄弟们的指引:小弟总结下:
    1.再DOM加载后执行, 2.加载即执行,要是调用不到就不会执行了:
    通常使用第二种方法来开发jQuery插件,利用闭包的特性可以避免内部的临时变量影响到全局,同时通过将jQuery传进闭包,可以方便的使用$符号。一般使用还是使用第一种方法吧,DOM解析完毕就会执行,一般插件不会具体去写哪个DOM元素的事件的,因为都是在jQuery导入后导入插件,可以把要操作的DOM对象传进插件里再实现具体的操作