jQuery技术

【jQuery基础学习】08 编写自定义jQuery插件

字号+ 作者:H5之家 来源:H5之家 2016-02-03 12:01 我要评论( )

本来想写jQuery UI插件的,但是想了想还是算了。 本书介绍jQuery UI插件的时候太过简单,所以,准备在写完了jQuery这个系列之后,单独把jQueryUI拿出来写一个系

标签:class   style   log   com   http   使用   it   代码   la   

本来想写jQuery UI插件的,但是想了想还是算了。

本书介绍jQuery UI插件的时候太过简单,所以,准备在写完了jQuery这个系列之后,单独把jQueryUI拿出来写一个系列并顺便加入jQuery.grid插件。

尽量把最新的jQuery UI的各个方面都写一个简单的小例子和效果图,以后用来复制粘贴。\(^o^)/

 

那么就让我们来开始学习编写jQuery的插件吧。

目的:虽然jQuery各种各样的功能已经很完善了,但是我们还是要学会自己去编写插件。这样我们可以去封装一些项目中经常用到的专属的代码,以便后期维护和提高开发效率。

jQuery插件的类型:

  • 封装对象方法的插件
  • 大部分jQuery的插件都属于这种,对获取的jQuery对象进行操作
  • 封装全局函数的插件
  • 可以理解为$.ajax这种就是封装的全局函数
  • 选择器插件
  • 顾名思义,封装的选择器
  • jQuery插件的基本要点:

  • 避免在插件内部使用$,而应该使用完整的jQuery。当然也可以用闭包的技巧来回避这个问题。

    (function($){ //此处编写jQuery插件代码,这种闭包玩法就不在这里解释了,我前面的js基础系列写过了,不懂的请转到这个地址看看。在此篇文章最后的部分就是。 })(jQuery);

  • jQuery插件的机制:

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

    前者实现封装对象方法的插件,后者实现封住选择器插件和全局函数插件。

    jQuery.extend()除了用于扩展jQuery对象之外,还可以扩展已经存在的object对象,所以经常被用于设置插件方法的一系列默认参数。如:

    function myFunc(options){ options=jQuery.extend({ name:"bar", length:1 },options); } myFunc({name:"asd"});//此时函数调用后options的name为asd,length为1

    编写jQuery插件

  • 封装jQuery对象方法的插件 
  • 那就举个表格隔行变色的例子

    (function($){ $.fn.extend({ "alterBgColor":function(options){ options=$.extend({//设置默认参数 odd:"odd", even:"even", selected:"selected" },options); $("tbody>tr:odd",this).addClass(options.odd); $("tbody>tr:even",this).addClass(options.even); $("tbody>tr",this).click(function(){ var hasSelected=$(this).hasClass(options.selected); $(this)[hasSelected?"removeClass":"addClass"](options.selected) .find(":checkbox").attr(‘checked‘,!hasSelected); }); $("tbody>tr:has(:checked)",this).addClass(options.selected); } }); })(jQuery);

    $("tbody>tr:odd",this)这种用法在加上第二个参数this后,第一个参数的选择器就只会在this这个对象下进行筛选。
  • 封装全局函数的插件
  • 去除左空白字符和去除右空白字符的插件例子:

    (function($){ $.extend({ ltrim:function(text){ return (text||"").replace(/^\s+/g,""); }, rtrim:function(text){ return (text||"").replace(/\s+$/g,""); } }); })(jQuery);

  • 自定义选择器的插件
  • 选择索引介于两个数中间的元素的选择器插件例子:

    (function($){ $.extend(jQuery.expr[":"],{ between:tmp=m[3].split(",");tmp[0]-0<i&&i<tmp[1]-0;//这里用-0可以将字符串转换为数字 } }); })(jQuery); $("div:between(2,5)")

  •  

    【jQuery基础学习】08 编写自定义jQuery插件

    标签:class   style   log   com   http   使用   it   代码   la   

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 强大的jQuery移动插件Top 10

      强大的jQuery移动插件Top 10

      2016-02-25 09:05

    • 互联网创业小团队做项目,产品不够稳定的因素都有哪些?如何解决

      互联网创业小团队做项目,产品不够稳定的因素都有哪些?如何解决

      2016-02-10 12:00

    • jquery ui 学习随笔 日历

      jquery ui 学习随笔 日历

      2016-01-18 19:04

    • 推荐:7款个性化jQuery/HTML5地图插件

      推荐:7款个性化jQuery/HTML5地图插件

      2015-11-18 11:19

    网友点评
    "