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 相关文章推荐
用javascript自动显示最后更新时间
Mar 15 Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
基于node.js实现爬虫的讲解
Feb 18 Javascript
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
JS实现关闭小广告特效
Jan 29 Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 Javascript
Javascript的promise,async和await的区别详解
Mar 24 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
DC动漫人物排行
2020/03/03 欧美动漫
mysql+php分页类(已测)
2008/03/31 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
javascript基本语法分析说明
2008/06/15 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
js命名空间写法示例
2015/12/18 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
Python 解析XML文件
2009/04/15 Python
python实现基本进制转换的方法
2015/07/11 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Python模块相关知识点小结
2020/03/09 Python
Python接口测试文件上传实例解析
2020/05/22 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
食堂采购员岗位职责
2014/03/17 职场文书
产品质量保证书范本
2015/02/27 职场文书
安全守法证明
2015/06/23 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书