zoukankan      html  css  js  c++  java
  • jQuery插件开发小结

    jQuery插件开发规范

    1. 使用闭包

    (function($) {
      // Code goes here
    })(jQuery);
    这是来自jQuery官方的插件开发规范要求,使用这种编写方式有什么好处呢?
          a) 避免全局依赖。
          b) 避免第三方破坏。
          c) 兼容jQuery操作符'$'和'jQuery '。

    2. 扩展

    jQuery提供了2个供用户扩展的‘基类’ - $.extend和$.fn.extend.
    $.extend 用于扩展自身方法,如$.ajax, $.getJSON等;
    $.fn.extend则是用于扩展jQuery类,包括方法和对jQuery对象的操作。
    为了保持jQuery的完整性,趋向于使用$.fn.extend进行插件开发而尽量少使用$.extend.

    demo.js

    ;(function($){ //“;”是为了避免代码合并等不必要的错误
     
        $.fn.demo=function(options){
            //使用对象的形式
            var defaults={ //默认参数 
                color:'green'
            }
                   // 将用户传进来的参数扩展覆盖默认参数
            var options=$.extend({},defaults,options); //{}主要是为了创建一个新对象,保留对象的默认值
                   // 功能实现
            this.each(function(){ //支持jQuery选择器
                $(this).css('background',options.color);
            });
            return this; //使之能够链式操作
        }
     
    })(jQuery);

    demo.html

           ...
        <title>demo</title>
        <script src="jquery.js"></script>
        <script src="demo.js"></script>  //载入插件文件
            ...
     
        <div id="div1">
            demo
        <script>
            $("#div1").demo({    //调用方式
                color:'black'   //如果用户不传递参数就使用默认参数
            });
        </script>
        </div>
            ...

    备注:官方推荐插件的命名标准写法是jquery.demo.v1.0.js或者jquery-demo-v1.0.js(jquery.插件名.版本号.js);


    类级别的插件开发

    1、直接给jQuery添加静态函数

    jQuery.demo=function(){
        //功能代码
    }
     
    //调用方式:
    $.demo();

    2、使用extend()方法

    jQuery.extend({
        demo1:function(){
            //功能代码
        }
        demo2:function(){
            //功能代码
        }
    });
     
    // 调用方式:
    $.demo1();
    $.demo2();

    3、使用命名空间

    jQuery.kongjian={
        demo:function(){
     
        }
    }
     
    // 调用方式:
    $.kongjian.demo();

  • 相关阅读:
    MarkDownPad2 注册码
    如何让你的.vue在sublime text 3 中变成彩色?
    字典树入门
    博弈论
    复杂度问题
    gets scanf以及缓冲区域的问题
    对象
    矩阵转置的一般算法
    二叉树的建立、遍历、叶子节点计数、深度计算
    D
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537195.html
Copyright © 2011-2022 走看看