JavaScript的jQuery库插件的简要开发指南


Posted in Javascript onAugust 12, 2015

jQuery 插件通常分两类。

  1.     基于选择器的插件(支持链式操作)
  2.     不基于选择器的插件(不支持链式操作)

前段时间简单学习了 jQuery 插件开发,开发了两个简单的插件,在此对两种插件的开发模式做简要总结。
基于选择器的插件

通常开发模式如下:

(function($, window, undefined) {
 $.fn.PluginName = function(opts) {
 var defaults = {
  // 插件自定义选项的默认值
 };

 // 以用户的自定义选项覆盖默认选项
 var options = $.extend(defaults, opts || {});

 return this.each(function() { // 让插件支持链式操作
  // 在这里编写插件功能代码
 });
 };
})(jQuery, window);

首先,创建一个匿名的自执行函数,形参为 $ 、 window 和 undefined,实参为 jQuery 和 window。

嗯?为什么没有为 undefined 对应地传入一个实参呢?这是一个小技巧,考虑到 undefined 这个变量名可能在其它地方的 JavaScript 代码赋过值,失去了它真正的意义,所以这里干脆不传入这个参数,以确保它在那个匿名自执行函数中是真正的 undefined。

jQuery 传入后对应为 $,这样可以保证插件内调用的 $ 一定是 jQuery 而非 Prototype 之类的库。

此类插件的调用方式一般为 $(selector).PluginName(); 这种形式。

此类具体示例可参考 https://github.com/libuchao/KTwitter
不基于选择器的插件

由于此类插件不依赖于选择器,所以也无链式操作一说。一般开发模式如下:

(function($, window, undefined) {
 $.PluginName = function(opts) {
 var defaults = {
  // 插件自定义选项的默认值
 };

 // 以用户的自定义选项覆盖默认选项
 var options = $.extend(defaults, opts || {});

 // 在这里编写插件功能代码
 };
})(jQuery, window);

此类插件的调用形式一般为 $(selector).PluginName(); 这种形式。

Javascript 相关文章推荐
新发现一个骗链接的方法(js读取cookies)
Jan 11 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
jQuery中scrollTop()方法用法实例
Jan 16 Javascript
jQuery操作属性和样式详解
Apr 13 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
jQuery日程管理控件glDatePicker用法详解
Mar 29 jQuery
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
vue-music关于Player播放器组件详解
Nov 28 Javascript
Vue2.0结合webuploader实现文件分片上传功能
Mar 09 Javascript
Promise扫盲贴
Jun 24 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
JavaScript中的call方法和apply方法使用对比
Aug 12 #Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 #Javascript
基于jQuery实现动态数字展示效果
Aug 12 #Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 #Javascript
深入解读JavaScript中的Hoisting机制
Aug 12 #Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 #Javascript
javascript表单验证大全
Aug 12 #Javascript
You might like
isset和empty的区别
2007/01/15 PHP
php 全局变量范围分析
2009/08/07 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
深入研究React中setState源码
2017/11/17 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
Python魔术方法详解
2015/02/14 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
法学专业应届生求职信
2013/10/16 职场文书
员工考核管理制度
2014/02/02 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
小学工作总结2015
2015/05/04 职场文书