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 相关文章推荐
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
js验证真实姓名与身份证号是否匹配
Oct 13 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
Mar 06 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 Javascript
webpack4 optimization使用总结
Nov 10 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
微信小程序实现折叠展开效果
2018/07/19 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
python使用knn实现特征向量分类
2018/12/26 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
2014大学生全国两会学习心得体会
2014/03/13 职场文书
人民调解协议书范本
2014/10/11 职场文书
中学生检讨书范文
2014/11/03 职场文书
优秀志愿者感言
2015/08/01 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书