jquery插件开发方法(初学者)


Posted in Javascript onFebruary 03, 2012

jQuery为开发插件提拱了两个方法,分别是:

jQuery.fn.extend(object);
jQuery.extend(object);

jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。
jQuery.fn.extend(object);给jQuery对象添加方法。

fn 是什么东西呢。查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = { 
 init: function( selector, context ) {//....  

 //...... 
};

原来 jQuery.fn = jQuery.prototype.对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代码

$.fn.extend({ 
alertWhileClick:function(){ 
$(this).click(function(){ 
alert($(this).val()); 
}); 
} 
}); 
$("#input1").alertWhileClick(); //页面上为:<input id="input1" type="text"/> 
$.fn.extend({ 
alertWhileClick:function(){ 
$(this).click(function(){ 
alert($(this).val()); 
}); 
} 
}); 
$("#input1").alertWhileClick(); //页面上为:<input id="input1" type="text"/>

$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

真实的开发过程中,当然不会做这么小白的插件,事实上jQuery提拱了丰富的操作文档,事件,CSS ,Ajax、效果的方法,结合这些方法,便可以开发出更加 Niubility 的插件。

Javascript 相关文章推荐
jquery动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
js 操作符汇总
Nov 08 Javascript
js倒计时抢购实例
Dec 20 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
javascript基本数据类型和转换
Mar 17 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
浅谈Angular HttpClient简单入门
May 04 Javascript
vue-cli项目中使用echarts图表实例
Oct 22 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
vue实现购物车的监听
Apr 20 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
jquery插件制作简单示例说明
Feb 03 #Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 #Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 #Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
Feb 02 #Javascript
JavaScript初学者应注意的七个细节小结
Jan 30 #Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 #Javascript
面向对象的Javascript之二(接口实现介绍)
Jan 27 #Javascript
You might like
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
php批量修改表结构实例
2017/05/24 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
Python实现快速计算词频功能示例
2018/06/25 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
python内存动态分配过程详解
2019/07/15 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
2014年社会实践活动总结范文
2014/04/29 职场文书
初婚未育证明样本
2015/06/18 职场文书
工程款催款函
2015/06/24 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL