如何开发一个JQuery插件


Posted in 面试题 onJuly 28, 2016
JQuery有两种开发插件的方法:
jQuery.fn.extend(object);
jQuery.extend(object);
jQuery.extend(object);方法为扩展jQuery类本身.并为类添加新的方法。
jQuery.fn.extend(object)方法是给jQuery对象添加方法。
jQuery.fn = jQuery.prototype.
虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。
jQuery便是一个封装得非常好的类,比如我们用 语句 $(“#btn1″) 会生成一个 jQuery类的实例。
jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如:
$.extend({
add:function(a,b){return a+b;}
});
便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,
$.add(3,4); //return 7
jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。
比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:
Java代码
1. $.fn.extend({
2.
3. alertWhileClick:function(){
4.
5. $(this).click(function(){
6.
7. alert($(this).val());
8. });
9.
10. }
11.
12. });
13.
14. $(“#input1″).alertWhileClick(); //页面上为:
$.fn.extend({
alertWhileClick:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
$(“#input1″).alertWhileClick(); //页面上为:
$(“#input1″) 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。
jQuery提拱了丰富的操作文档,事件,CSS ,Ajax、效果的方法,结合这些方法,便可以开发出更加 Niubility 的插件。

Tags in this post...

面试题 相关文章推荐
C,C++的几个面试题小集
Jul 13 面试题
一套VC试题
Jan 23 面试题
大整数数相乘的问题
Jul 22 面试题
是否有自动比较结构的方法
Jun 03 面试题
空指针到底是什么
Aug 07 面试题
database面试题
Mar 28 面试题
Oracle性能调优原则
May 03 面试题
性能测试工程师的面试题
Feb 20 面试题
什么时候需要进行强制类型转换
Sep 03 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
Sep 26 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Jul 27 面试题
JSF界面控制层技术
Jun 17 面试题
什么是GWT的Entry Point
Aug 16 #面试题
AJAX的优缺点都有什么
Aug 18 #面试题
DOM和JQuery对象有什么区别
Nov 11 #面试题
主要的Ajax框架都有什么
Nov 14 #面试题
如何用JQuery进行表单验证
May 29 #面试题
Ajax主要包含了哪些技术
Jun 12 #面试题
如何整合JQuery和Prototype
Jan 31 #面试题
You might like
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
php验证码生成代码
2015/11/11 PHP
php字符串操作常见问题小结
2016/10/11 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
javascript编程起步(第五课)
2007/02/27 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
vue生命周期实例小结
2018/08/15 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
在python 不同时区之间的差值与转换方法
2019/01/14 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
python集合的新增元素方法整理
2020/12/07 Python
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
几个判断型的面试题
2012/07/03 面试题
培训主管的岗位职责
2013/11/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
雷锋之歌观后感
2015/06/10 职场文书
个人欠条范本
2015/07/03 职场文书
Python中文纠错的简单实现
2021/07/07 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android