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

原文地址:https://www.cnblogs.com/archermeng/p/7537196.html