转自网络,忘记出处了。
区别jQuery和$
在插件代码中总是使用jQuery,而不是$。
$并不总是等于jQuery,这个很重要。如果用户使用var JQ=jQuery.noConflict()函数更改jQuery别名,那么就会引发错误。另外,其他javascript框架也可能使用$别名。
在复杂的插件中,如果全部使用jQuery代替$,又会让人难以接受这种复杂的写法。为了解决这个问题,建议使用如下插件模式:
(function($){ //在插件包中使用$代替jQuery })(jQuery);
这个包装函数接收一个参数,该参数传递的是jQuery全局对象,由于参数被命名为$,因此在函数体内就可以安全使用$别名,而不用担心命名冲突。
jQuery插件设计一般都遵循固定的模版,模版如下:
注意:jQuery.fn是jQuery.prototype的别名。
(function($){ $.fn.插件名=function(settings){ //默认参数 var defaultSettings={ } /*合并默认参数和用户自定义参数*/ settings=$.extend(defaultSettings,settings); return this.each(function(){ }); } })(jQuery);
这是最基础的jQuery插件结构。