码迷,mamicode.com
首页 > Web开发 > 详细

jQuery插件开发方式

时间:2015-05-30 22:33:16      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

一、jQuery扩展                                                                                                          

  1、$.extend(object)

  类似于.Net的扩展方法,用于扩展jQuery。然后就可以用$.的方式调用。

    $(function(){
        $.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } });
        $.fun1();
    })

  2、$.fn.extend(object)

  扩展jQuery的对象。

    $.fn.extend({ fun2: function () { alert("执行方法2"); } });
    $("#id1").fun2();

  可以用google来看看:

  技术分享

  上面的写法等同于:

    $.fn.fun2 = function () { alert("执行方法2"); }
    $(this).fun2();

二、私有域                                                                                                                

  其定义方式如下:

(function ($) { })(jQuery);
//相当于
var fn = function (xxoo) { };
fn(jQuery);

  以下代码弹出123。

  $(function(){
     var fn = function (xxoo) { };
     fn(alert(123));
  })

 

三、定义插件的基本步骤                                                                                                 

  1、定义作用域

  开发一个jQuery插件,首先要把插件的代码与外界隔离开来,外部的代码不允许直接访问插件内部的代码,插件内部的代码也不影响外部。

    //步骤1 定义插件私有作用域
    (function ($) {

    })(jQuery);

  这样就能保证插件内部的代码与外界隔离了。

  2、扩展jQuery

  定义了作用域之后,为了能够让外部调用,就需要将插件扩展到jQuery。

 
    //步骤1 定义私有作用域
    (function ($) {
        //步骤2 插件的扩展方法名称
        $.fn.MyFrame = function (options) {
            
        }
    })(jQuery);
 

  3、默认值

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

 
    //步骤1 定义私有作用域
    (function ($) {
        //步骤3 插件的默认值属性
        var defaults = {
            Id: ‘#id1‘,
        };
        //步骤2 插件的扩展方法名称
        $.fn.MyFrame = function (options) {
            //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
            var options = $.extend(defaults, options);
        }
    })(jQuery);
 

  4、支持jQuery选择器

 
    //步骤1 定义私有作用域
    (function ($) {
        //步骤3 插件的默认值属性
        var defaults = {
            Id: ‘#id1‘,
        };
        //步骤2 插件的扩展方法名称
        $.fn.MyFrame = function (options) {
            //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
            var options = $.extend(defaults, options);
        }
        //步骤4 支持jQuery选择器
        this.each(function () {

        });
    })(jQuery);
 

  5、支持jQuery的链式调用

 
    //步骤1 定义私有作用域
    (function ($) {
        //步骤3 插件的默认值属性
        var defaults = {
            Id: ‘#id1‘,
        };
        //步骤2 插件的扩展方法名称
        $.fn.MyFrame = function (options) {
            //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
            var options = $.extend(defaults, options);
        }
        //步骤4 支持jQuery选择器
        //步骤5 支持链式调用(将步骤4返回)
        return this.each(function () {

        });
    })(jQuery);
 

  6、插件内部方法

  

 
    //步骤1 定义私有作用域
    (function ($) {
        //步骤3 插件的默认值属性
        var defaults = {
            Id: ‘#id1‘,
        };

        //步骤6 在插件里定义函数
        var MyFun = function (obj) {
            alert(obj);
        }

        //步骤2 插件的扩展方法名称
        $.fn.MyFrame = function (options) {
            //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
            var options = $.extend(defaults, options);
        }
        //步骤4 支持jQuery选择器
        //步骤5 支持链式调用(将步骤4返回)
        return this.each(function () {
            //步骤6 在插件里定义函数
            MyFun(this);
        });
    })(jQuery);
 

  由于作用域关系,步骤6的私有函数目前允许的插件内部使用。

jQuery插件开发方式

标签:

原文地址:http://www.cnblogs.com/feng-NET/p/4541135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!