jQuery 的流行在很大程度上归功于其对插件的支持。插件也就是功能扩展的意思,jQuery 允许任何开发人员超越最初的库函数创建并扩展 jQuery 函数。这种开放性框架设计思路催生了无数实用型的插件,jQuery 几乎能够提供 Web 应用程序内所需的任何一种函数。
jQuery 的易扩展性吸引了越来越多的开发者和业余爱好者去研究、设计和使用 jQuery 插件。目前,全球有超过上千种不同应用需要的插件。使用这些插件能够帮助开发人员提升开发速度,节约劳动成本。最权威的插件可以访问 jQuery 官方网站 (http://plugins.jquery.com) 获取。本章将重点讲解如何创建自己的 jQuery 插件,并就网络上比较经典的几个插件设计原理和使用进行介绍。
8.1 创建 jQuery 插件网络上流传着成百上千的第三方插件,这些插件虽然能够增强我们的编程体验,但是很难满足所有设计需要,特别是个性化开发需求。如果自己编写的代码可以重用,或者供其他用户参考,很自然任何人都希望把这些代码进行封装,打包为一个新插件。这个实现过程并不困难,只要读者认真阅读本节内容即可轻松实现。
8.1.1 jQuery 插件的类型jQuery 插件主要分为三种类型,说明如下。
1. jQuery 方法
这种类型的插件是把一些常用或者重复使用的功能定义为函数,然后绑定到 jQuery 对象上,从而成为 jQuery 对象的一个扩展方法。
目前,大部分jQuery插件都是这种类型的插件,由于这种插件是将对象方法封装起来,在 jQuery 选择器获取 jQuery 对象的过程中进行操作,从而发挥 jQuery 强大的选择器优势。有很多 jQuery 内部方法,也是在 jQuery 脚本内部通过这种形式插入到 jQuery 框架中的,如 parent() 、appendTo() 和 addClass() 等方法。
2.全局函数
也可以把自定义的功能函数独立附加到 jQuery 命名空间下,从而作为 jQuery 作用域下的一个公共函数使用。例如,jQuery 的 ajax() 方法就是利用这种途径内部定义的全局函数。
==由于全局函数没有被绑定到 jQuery 对象上,故不能够在选择器获取的 jQuery 对象上调用。需要通过 jQuery.fn() 或者 $.fn() 方式进行引用。==
3.选择器
jQuery 提供了强大的选择器,当然在个性化开发中,读者也可能会感觉到这些选择器不够用,或者使用不是很方便。这个时候,我们就可以考虑自定义选择器,以满足特定环境下的选择元素需要。
8.1.2 解析 jQuery 插件机制为了方便用户创建插件,jQuery 自定义了 jQuery.extend() 和 jQuery.fn.extend() 方法。其中 jQuery.extend() 方法能够创建全局函数或者选择器,而 jQuery.fn.extend() 方法能够创建 jQuery 对象方法。
例如,下面的示例将在 jQuery 命名空间上创建两个公共函数。
- <script type="text/javascript">
- jQuery.extend({ // 扩展 jQuery 的公共函数
- minValue: function(a, b){ // 比较两个参数值,返回最小值
- return a<b?a:b;
- },
- maxValue: function(a, b){ // 比较两个参数值,返回最大值
- return a<b?b:a;
- }
- });
-
关注打赏


微信扫码登录