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 相关文章推荐
bcastr2.0 通用的图片浏览器
Nov 22 Javascript
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
JavaScript实现横向滑出的多级菜单效果
Oct 09 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 Javascript
javascript 作用于作用域链的详解
Sep 27 Javascript
分享vue.js devtools遇到一系列问题
Oct 24 Javascript
编写React组件项目实践分析
Mar 04 Javascript
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
JavaScript 替换所有匹配内容及正则替换方法
Feb 12 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
php提取微信账单的有效信息
2018/10/01 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
财务学生的职业生涯发展
2014/02/11 职场文书
房产委托公证书样本
2014/04/04 职场文书
投标服务承诺书
2014/05/28 职场文书
欢迎领导检查标语
2014/06/27 职场文书
室内趣味活动方案
2014/08/24 职场文书
检察院起诉书
2015/05/20 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS