zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)
    MapControl控件AddLayer出现错误-引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常
    c# 集合
    springmvc:第一个springmvc程序
    springmvc:简介
    VocabularyAccumulation
    Spring:整合Mybatis
    Spring:动态代理及Aop
    Spring:自动装配及注解
    Spring:Ioc(依赖注入)
  • 原文地址:https://www.cnblogs.com/blog-leo/p/3659597.html
Copyright © 2011-2022 走看看