JQuery插件开发 - 模板

 1 (function($) {

 2     $.fn.PluginName = function(options) {

 3         // 创建一个默认设置对象

 4         var defaults = {

 5             key : "DefaultValue"

 6         }

 7         //使用extend方法从options和defaults对象中构造出一个新的设置对象

 8         var options = $.extend(defaults, options);

 9         /****************

10              执行代码

11         ****************/

12     };

13 })(jQuery);
 //调用自定义的JQuery插件

 $(".className").PluginName({key:"NewValue"});

 


 

var options = $.extend(defaults, options);

/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

Object.extend = function(destination, source) { // 一个静态方法表示继承, 目标对象将拥有源对象的所有属性和方法

  for (var property in source) {

      destination[property] = source[property];// 利用动态语言的特性, 通过赋值动态添加属性与方法

  }

  return destination;// 返回扩展后的对象

}

 


 

 

 1 (function($) {

 2     var methods = {

 3         init : function(options) {

 4             // 创建一个默认设置对象

 5             var defaults = {

 6                 key : "DefaultValue"

 7             }

 8             //使用extend方法从options和defaults对象中构造出一个新的设置对象

 9             var options = $.extend(defaults, options);

10             /***************

11                  执行代码

12             ***************/

13             

14         }

15     };

16     $.fn.PluginName = function(options) {

17         //获取传入的第一个实参副本(arguments对象是收到的实参副本,就像数组,但却又不是数组)

18         var method = arguments[0];

19         //获取我们的方法

20         if (methods[method]) {

21             //如果方法存在,存储起来以便使用

22             method = methods[method];

23             //如果方法不存在,检验对象是否为一个对象(JSON对象)或者method方法没有被传入

24             arguments = Array.prototype.slice.call(arguments, 1);

25         } else if ( typeof (method) == 'object' || !method) {

26             //如果我们传入的是一个对象参数,或者根本没有参数,init方法会被调用

27             method = methods.init;

28         } else {

29             //如果方法不存在或者参数没传入,则报出错误。需要调用的方法没有被正确调用

30             $.error('Method ' + method + ' does not exist on jQuery.ChangeTabs');

31             return this;

32         }

33         //调用我们选中的方法

34         return method.apply(this, arguments);

35     };

36 })(jQuery);
$('.className').pluginName('init', 'argument'); // 调用:把 "argument 1" 和 "argument 2" 传入 "init"

 

你可能感兴趣的:(jquery插件)