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 相关文章推荐
js event事件的传递与冒泡处理
Dec 06 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
Feb 22 Javascript
基于jQuery创建鼠标悬停效果的方法
Mar 07 Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
Jun 03 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
详解vue中使用微信jssdk
Apr 19 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
js实现复制粘贴的两种方法
Dec 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php打造属于自己的MVC框架
2012/03/07 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php计算整个目录大小的方法
2015/06/01 PHP
smarty中常用方法实例总结
2015/08/07 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Python-接口开发入门解析
2019/08/01 Python
ubuntu上安装python的实例方法
2019/09/30 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python利用faker库批量生成测试数据
2020/10/15 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL