• 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();

  • 相关阅读:
    java IO输入输出流实现文本复制
    java HashMap
    java TreeSet 实现存自定义不可重复数据
    java中的ArrayList 使得集合中的对象不重复
    java 多线程执行过程
    final关键字的使用
    java中==和equals的区别
    java面向对象理解
    java语言基础(变量和运算符)
    学习Java第一天,大致了解
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537196.html
Copyright © 2020-2023  润新知