;(function($){
//“;(function($){ })(jQuery);”使用了匿名函数,表示在方法体内的”$”表示的就是”jquery”,为了有更好的兼容性,所以在前面添加一个分号,这里的$符号是作为匿名函数的形参。
$.fn.插件名 = function(options){
//可用 $.插件名() 用来扩展方法,和 $.fn.插件名() 一样都是可以的,他们的区别在于:
//1.前者不使用jquery的方法,而后者使用了jquery的方法,就像 addClass(),remove()等。所以可想而知大部分的现有插件都是jquery.fn.extend()进行扩展的。
//2.前者是jquery的静态插件,后者是jquery的prototype属性扩展,无论new多少次都是一个附本。
var defaults = { //默认值
id: null,// ID号………………
};
options = $.extend(defaults, options);
//表示的是如果options中的参数总是有值的话,那么options中的值将会代替defaults中的值。
//这是写代码,有三种方式:
//1.return;直接返回,不支持链式调用,用时$("#xxx").插件名();
//2.return this;因为返回了调用的对象,可使这个插件可链式调用,用时$("#xxx").插件名().其它插件名().其它方法名();
//3.return this.each(function() { }); 使这个插件可链式调用并且支持对多个无素集合进行操作,如$("li").插件名().其它插件名();对多个li进行操作
return this.each(function() {
// Do something to each element here.
var markup = $.fn.插件名.方法名(参数);
$this.html(markup);
//私有函数
function debug($obj){
if(window.console && window.console.log){
window.console.log('hilight selection count :' + $obj.size());
}
//调用私用函数
debug($obj);
});
//或
// .......; return this;
};
//对外公开方法,可直接调用
$.fn.插件名.方法名 = function(参数, 回调) {
if (typeof(eval(回调)) == "function") {
回调(); //判断是否有回调函数,有就执行
}
return "xxxxxxxxx";
};
})(jQuery);