对jquery进行扩展 -jquery插件扩展

       编写插件的目的是 给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率。

一   ,插件的种类      

     jQuery插件主要分3种类型:

     1.   封装对象方法的插件 

           这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件。

     2.   封装全局函数的插件

           可以将独立的函数加到jQuery命名空间之下。比如jQuery.ajax() ,jQuery.trim()方法等,都是jQuery内部作为全局函数的插件而附加到内核上去的。

     3.   选择器插件

          个别情况下,会需要用到选择器插件。虽然jQuery的选择器非常强大,但还是会需要扩充一些自己的选择器,例如用color(red)来选择所以红色字的元素之类的想法。

  

二  , 插件的基本特点

     1 .   jQuery插件的文件名推荐命名为jquery.[插件名].js,以免和其他javascript库插件混淆,例如,命名为jquery.color.js

     2.   所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上。

     3.  在插件内部,this指向的是当前通过选择器获取的jQuery对象

     4.  所有的方法 或函数插件,都应当以分号结尾,否则压缩的时候可能出现问题。为了更稳妥些,甚至可以在插件头部先加上一个分号,以免他人的不规范代码给插件带来影响。

     5.  插件应该返回一个jQuery对象,以便保证插件的可链式操作。除非插件需要返回的是一些需要获取的变量。

     6.  避免在插件内部使用$作为jQuery对象的别名,而应使用完整的jQuery来表示,这一可以避免冲突。当然,也可以利用闭包来回避这个问题。


三.    jQuery插件的机制

     1 . 常见的插件结构

        ;(function($){

            //此处编写jQuery插件代码

        })(jQuery);

    2 .  jQuery提供了两个用于扩展jQuery功能的方法,即 jQuery.fn.extend()方法 和 jQuery.extend()方法,

          jQuery.extend() 方法除了可以扩展jQuery对象之外,还有一个 很强大的功能,就是用于扩展 已有的Object对象


    3 .  jQuery的两种扩展方法的两种扩展形式   

         jQuery.fn.extend():

         A:

              ;(function($){

                     $.fn.extend({

                          "color":function(val){

                                //插件代码

                          }    

                     });

               })(jQuery);


        B:       

              ;(function($){

                     $.fn.color=function(val){

                           //插件代码

                     };

               })(jQuery);

        

        jQuery.extend()方法:这类插件是在jQuery命名空间内部添加一个函数。这类插件只是普通的函数,没有特别需要注意的地方

        A:

             ;(function($){

                     $.extend({

                           ltrim : function(val){

                                return (val || "").replace(/^\s+/g, "");    

                           },

                     });

              })(jQuery);


B:

    ;(function($){

           $.ltrim = function(val){

                  return (val || "").replace(/^\s+/g, ""); 

          },

    })(jQuery);



4.     利用$.extend()方法对已有对象进行扩展

       jQuery.extend(target,obj1,...[objN])

       用一个或多个其他对象来扩展一个对象,然后返回被扩展的对象。

      例如,合并settings对象和options 对象,修改并返回settings对象。

                var settings = {validate:false,limit:5,name:"foo"};

                var options  = {validate:true,name:"bar"};

                var newOptions = jQuery.extend(settings, options);

          结果为:

                newOptions = {validate:true, limit:5, name:"bar"}

          jQuery.extend()方法经常被用于设置插件方法的一系列默认参数,例如,

                function foo(options) {

                options = jQuery.extend({

                                name:"bar",

                                 length:5,

                                dataType:"xml"                                          /*默认参数*/

                         }, options);                                                         /*这里的options为传递进来的参数*/

                }

                如果用户调用foo()方法的时候,在传递的参数options对象中设置了相应的值,那么就使用设置的值,否则使用默认值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值