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"
  • 相关阅读:
    20200209 ZooKeeper 3. Zookeeper内部原理
    20200209 ZooKeeper 2. Zookeeper本地模式安装
    20200209 Zookeeper 1. Zookeeper入门
    20200206 尚硅谷Docker【归档】
    20200206 Docker 8. 本地镜像发布到阿里云
    20200206 Docker 7. Docker常用安装
    20200206 Docker 6. DockerFile解析
    20200206 Docker 5. Docker容器数据卷
    20200206 Docker 4. Docker 镜像
    Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
  • 原文地址:https://www.cnblogs.com/blog-leo/p/3659597.html
Copyright © 2011-2022 走看看