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 相关文章推荐
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
关于全局变量和局部变量的那些事
Jan 11 Javascript
js格式化货币数据实现代码
Sep 04 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
weUI应用之JS常用信息提示弹层的封装
Nov 21 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
Apr 13 Javascript
Node学习记录之cluster模块
May 31 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
解决axios post 后端无法接收数据的问题
Oct 29 Javascript
Element Tooltip 文字提示的使用示例
Jul 26 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
javascript string字符串优化问题
2011/07/31 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
js加强的经典分页实例
2013/03/15 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
ionic2懒加载配置详解
2017/09/01 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
Saltstack快速入门简单汇总
2016/03/01 Python
python八大排序算法速度实例对比
2017/12/06 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
详解python单元测试框架unittest
2018/07/02 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
2014年销售经理工作总结
2014/12/01 职场文书
李强感恩观后感
2015/06/17 职场文书
学习十八大的感悟
2015/08/11 职场文书