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 相关文章推荐
Web开发者必备的12款超赞jQuery插件
Dec 03 Javascript
前端jquery部分很精彩
May 03 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
Feb 22 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
Vue使用mixin分发组件的可复用功能
Sep 01 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 Javascript
解决pycharm双击但是无法打开的情况
Oct 31 Javascript
vue backtop组件的实现完整代码
Apr 07 Vue.js
JavaScript 原型与原型链详情
Nov 02 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
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
react基本安装与测试示例
2020/04/27 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
python实现简单名片管理系统
2018/11/30 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python魔法方法功能与用法简介
2019/04/04 Python
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
会展策划与管理专业求职信
2014/06/09 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
索尼ICF-36收音机评测
2022/04/30 无线电