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 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
node.js中的path.extname方法使用说明
Dec 09 Javascript
javascript继承的六大模式小结
Apr 13 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
Angular实现form自动布局
Jan 28 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
Jan 22 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
vue之延时刷新实例
Nov 14 Javascript
小程序实现多个选项卡切换
Jun 19 Javascript
vscode 调试 node.js的方法步骤
Sep 15 Javascript
js实现移动端图片滑块验证功能
Sep 29 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 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实现的DES加密解密封装类完整实例
2017/04/29 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python将xml和xsl转换为html的方法
2015/03/10 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python模块的加载讲解
2019/01/15 Python
详解Python 解压缩文件
2019/04/09 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
python实现代码统计程序
2019/09/19 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python 获取字典键值对的实现
2020/11/12 Python
个人职业及收入证明
2014/10/13 职场文书
工作犯错保证书
2015/05/11 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL