zoukankan      html  css  js  c++  java
  • jQuery 插件开发解析

    那么首先我们来简单的看一下最正统的 jQuery 插件定义方式:

    (function ($) {     
    $.fn.插件名 = function (settings) {         
    //默认参数         
    var defaultSettings = {
    
            }         /* 合并默认参数和用户自定义参数 */         
    
    settings = $.extend(defaultSettings, settings);
    
    return this.each(function () {             //代码         });   //插件在元素内多次出现
    
    } })(jQuery);
    

     

    先来看模板中的第一行代码(当然我们要把这一行代码的后半部分给揪出来一起看,不然第一行就完全无意义了):

    (function ($) {
    
    })(jQuery);
    

     这行代码其实是用于创建一个匿名函数。如果你对匿名函数和闭包不了解,将会对这种代码非常疑惑,那么强烈建议您阅读JavaScript中的匿名函数及函数的闭包这篇文章。

    jQuery 的继承方法 $.extend —— $.extend 在jQuery 插件开发中有个很重要的作用,就是用于合并参数。

    $.fn.tip = function (settings) {     
    var defaultSettings = {            
    //颜色     
    color: 'yellow',        
    //延迟        
    timeout: 200     }
     /* 合并默认参数和用户自定义参数 */    
    settings = $.extend(defaultSettings, settings);    
    alert(settings.input); 
    }

     jQuery 插件定义第二种方式:

    (function ($) {
        //插件定义--更换名字
        $.fn.tabpanel = function (method) {
            var methods = $.fn.tabpanel.methods;
            if (methods[method]) {
                return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
            } else if (typeof method === 'object' || !method) {
                return methods.init.apply(this, arguments);
            } else {
    
            }
        }
        //支持的方法
        $.fn.tabpanel.methods =
        {
            //初始化
            init: function (p_options) {
                tabpanelBind(p_options, this);
            },
            add: function (p_options) {
                addTab(p_options, this);
                tabpanelBind(p_options, this);
                // debugger
            }    }
        function add(p_options) {
            var _defaults = {
                id: ""
            }
        
        //内部实现略.........
    return _index; }
    })(jQuery);

    调用  $("#team").tabpanel('add',"");

     

     

  • 相关阅读:
    Apache 基础
    Oracle
    DevOps
    Ansible
    Iptables 和Firewall 防火墙
    防火墙
    Linux
    Intellij IDEA 快捷键大全
    Java8,9 新特性
    Jmeter
  • 原文地址:https://www.cnblogs.com/shanhe/p/3718875.html
Copyright © 2011-2022 走看看