jquery 问题

(function ($) {

...

});
}(jQuery));

最后}(jQuery)); 这个是什么意思?

阅读 3.2k
3 个回答

这是立即执行函数。将jQuery作为第一个参数传递到匿名函数function($){}中。
这解决了变量名冲突问题,因为有很多其他第三方库也会使用到美元符号$

追问问题:怎么给这种代码改成 $(document).ready(function(){ ... }); 这种形式啊?

外层包裹的这层只是解决命名冲突的问题,只要把原来要写的代码包裹在里面就好了。

(function($){
    $(document).ready(function(){
        ...
    }); 
})(jQuery);

其实在新版的jQuery支持更简单的写法:

(function($){
    $(function(){ //和上面有相同的效果
        ...
    });
})(jQuery);

$是形参,jQuery是实参,函数内相当于 $ = jQuery

(function(){
    //·······
})()

(function(){
    //·······
}())

function(){
    //·······
}()

国外好像都喜欢(function(){}());国内的人比较喜欢(function(){})()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进