Jquery插件写法笔记整理


Posted in Javascript onSeptember 06, 2012

jQuery插件类型:
1. jQuery方法:
大部分jQuery插件都是这种类型的插件,由于这种插件是将对象方法封装起来,在jQuery选择器获取jQuery对象过程中进行操作,从而发挥jQuery强大的选择器优势。
2. 全局函数:
也可以把自定义的功能函数独立附加到jQuery命名空间下,从而作为jQuery作用域下的一个公共函数使用。但全局函数没有被绑定到jQuery对象上,故不能在选择器获取的jQuery对象上调用。需要通过jQuery.fn()或$.fn()方式进行引用。
3. 选择器:
觉得jQuery提供的选择器不够用,或不方便的话,可以考虑自定义选择器。
jQuery插件机制:
① jQuery.extend()方法:能够创建全局函数或选择器。
By:所谓全局函数,就是jQuery对象的方法,实际上就是位于jQuery命名空间内部的函数,有人把这类函数称为实用工具函数,这些函数都有一个共同特征,就是不直接操作DOM元素,而是操作Javascript的非元素对象,或者执行其他非对象的特定操作,如jQuery的each()函数和noConflict()函数
例:在jQuery命名空间上创建两个公共函数

jQuery.extend({ 
minValue : function(a,b){ 
return a<b?a:b; 
}, 
maxValue : function(a,b){ 
return a<b?b:a; 
} 
}) 
$(function(){ 
$("input").click(function(){ 
var a = prompt("请输入一个数值?"); 
var b = prompt("请再输入一个数值?"); 
var c = jQuery.minValue(a,b); 
var d = jQuery.maxValue(a,b); 
alert("你输入的最大值是:" + d + "\n你输入的最小值是:" + c); 
}); 
}) 
<input type="button" value="jQuery插件扩展测试" />

※ jQuery.extend()方法除了可以创建插件外,还可以用来扩展jQuery对象。
例如:调用jQuery.extend()方法把对象a和对象b合并为一个新的对象,并返回合并对象将其赋值给变量c
var a = {name : "zhu",pass : 123} 
var b = {name : "wang",pass : 456,age : 1} 
var c = jQuery.extend(a,b); 
$(function(){ 
for(var name in c){ 
$("div").html($("div").html() + "<br />"+ name + ":" + c[name]); 
} 
})

例:创建jQuery全局函数
jQuery.css8 = { 
minValue : function(a,b){ 
return a<b?a:b; 
}, 
maxValue : function(a,b){ 
return a<b?b:a; 
} 
} 
$(function(){ 
$("input").click(function(){ 
var a = prompt("请输入一个数值?"); 
var b = prompt("请再输入一个数值?"); 
var c = jQuery.css8.minValue(a,b); 
var d = jQuery.css8.maxValue(a,b); 
alert("你输入的最大值是:" + d + "\n你输入的最小值是:" + c); 
}); 
})

By:如果要向jQuery命名空间上添加一个函数,只需要将这个新函数制定为jQuery对象的一个属性即可。其中jQuery对象名也可以简写为$,jQuery.css8==$.css8
② jQuery.fn.extend()方法:能够创建jQuery对象方法。
例:来个最简单的jQuery对象方法
jQuery.fn.test = function(){ 
alert("这是jQuery对象方法!"); 
} 
$(function(){ 
$("div").click(function(){ 
$(this).test(); 
}); 
})
Javascript 相关文章推荐
Bootstrap的图片轮播示例代码
Aug 31 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
基于jquery的用鼠标画出可移动的div
Sep 06 #Javascript
js防止表单重复提交实现代码
Sep 05 #Javascript
javascript面向对象入门基础详细介绍
Sep 05 #Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 #Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 #Javascript
Javascript中的delete介绍
Sep 02 #Javascript
JS判断当前日期是否大于某个日期的实现代码
Sep 02 #Javascript
You might like
PHP下MAIL的另一解决方案
2006/10/09 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
js 数组操作代码集锦
2009/04/28 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
python Django批量导入不重复数据
2016/03/25 Python
python实现图片筛选程序
2018/10/24 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python实现随机爬山算法
2021/01/29 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
游戏商店:Eneba
2020/04/25 全球购物
工作人员思想汇报
2014/01/09 职场文书
人事助理自荐信
2014/02/02 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
董事长岗位职责
2015/02/13 职场文书
2014年度个人总结范文
2015/03/09 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js