jQuery扩展与插件–附源码分析

  扩展与插件

  1. 编写JQuery插件

  

<script>
     
$.extend(object)      //为JQuery 添加一个静态方法。
$.fn.extend(object)   //为JQuery实例添加一个方法。
 
 
    jQuery.extend({
          min: function(a, b) { return a < b ? a : b; },
          max: function(a, b) { return a > b ? a : b; }
        });
    console.log($.min(3,4));
 
//-----------------------------------------------------------------------
 
$.fn.extend({
    "print":function(){
        for (var i=0;i<this.length;i++){
            console.log($(this)[i].innerHTML)
        }
 
    }
});
 
$("p").print();
</script>

 

  2. 定义作用域

  定义一个JQuery插件,首先要把这个插件的代码放在一个不受外界干扰的地方。如果用专业些的话来说就是要为这个插件定义私有作用域。外部的代码不能直接访问插件内部的代码。插件内部的代码不污染全局变量。在一定的作用上解耦了插件与运行环境的依赖。

 

(function(a,b){return a+b})(3,5)
 
       (function ($) { })(jQuery);
//相当于
        var fn = function ($) { };
        fn(jQuery);

 

  3. 默认参数

  定义了jQuery插件之后,如果希望某些参数具有默认值,那么可以以这种方式来指定。

 

/step01 定义JQuery的作用域
(function ($) {
    //step03-a 插件的默认值属性
    var defaults = {
        prevId: prevBtn,
        prevText: Previous,
        nextId: nextBtn,
        nextText: Next
        //……
    };
    //step06-a 在插件里定义方法
    var showLink = function (obj) {
        $(obj).append(function () { return "(" + $(obj).attr("href") + ")" });
    }
 
    //step02 插件的扩展方法名称
    $.fn.easySlider = function (options) {
        //step03-b 合并用户自定义属性,默认属性
        var options = $.extend(defaults, options);
        //step4 支持JQuery选择器
        //step5 支持链式调用
        return this.each(function () {
            //step06-b 在插件里定义方法
            showLink(this);
        });
    }
})(jQuery);

希望上边的基础知识能够帮到大家,在这里同样也为大家提供一些jQuery的资料,属于练手

Jquery走马灯效果
http://www.makeru.com.cn/live/1396_721.html?s=45051
jquery中的插件机制
http://www.makeru.com.cn/live/1396_473.html?s=45051
jQuery插件扩展,插件疯转原理
http://www.makeru.com.cn/live/1396_473.html?s=45051

jQuery搭建crm管理系统
http://www.makeru.com.cn/live/1396_1067.html?s=45051

 

jQuery系列(第一讲)3D轮播切换特效
http://www.makeru.com.cn/live/1396_943.html?s=45051
jQuery系列(第二讲)js实现随机PK小游戏
http://www.makeru.com.cn/live/1396_955.html?s=45051
jQuery系列(第三讲)百度换肤术
http://www.makeru.com.cn/live/1396_958.html?s=45051
jQuery系列(第四讲)JS实现轻便计算制作
http://www.makeru.com.cn/live/1396_959.html?s=45051