插件的基本要点:
1.命名推荐:jquery.[插件名].js,避免和其他js库插件混淆。
2.对象方法附加到:jQuery.fn上,全局函数附加到:jQuery对象本身。
3.在插件内部,this指向当前通过选择器获取的jQuery对象,非dom对象。
4.如果选择器获取多个元素,可通过this.each遍历。
5.插件应该返回jQuery对象,方便链式操作。
6.避免在插件内部使用$别名,应该用完整的jQuery表示。可利用闭包来避免这个问题。
//为了更好的兼容性,前边加个分号,防止压缩时其他js代码没加分号
;(function($){ //此处将$作为匿名函数的形参传入
//编写代码
})(jQuery); //jQuery作为实参传入,就可以在匿名函数内使用$
插件中的闭包理解:
;(function($){
var foo = 1; //定义局部变量,仅匿名函数内部可以访问
var bar = function(){
/* 在匿名函数内部的函数都能访问foo,即便是在匿名函数的外部调用bar函数的时候,也可以在bar()内部访问到foo,但在匿名函数的外部直接访问foo是做不到的 */
}
/* 下边的函数让匿名函数内部的函数bar()逃逸到全局可访问的范围,这样就可以在匿名函数的外部通过jQuery.BAR()来访问内部定义的函数bar(),并且内部函数bar()也能访问foo变量 */
$.BAR = bar();
})(jQuery);