• jQuery插件开发方式


     

    一、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的私有函数目前允许的插件内部使用。

      本文乃笔记,原文来自:http://www.cnblogs.com/xcj26/p/3345556.html

  • 相关阅读:
    JDBC中的PreparedStatement相比Statement的好处
    说出一些数据库优化方面的经验?
    数据库三范式是什么?
    用jdom解析xml文件时如何解决中文问题?如何解析?
    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
    MVC的各个部分都有那些技术来实现?如何实现?
    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!  
    串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
    说几个常见的编译时异常类?
  • 原文地址:https://www.cnblogs.com/changrulin/p/4746445.html
Copyright © 2020-2023  润新知