jQuery插件开发方式
一、jQuery扩展
1、$.extend(object)
类似于.Net的扩展方法,用于扩展jQuery。然后就可以用$.的方式调用。
$(function(){
$.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } });
$.fun1();
})
2、$.fn.extend(object)
扩展jQuery的对象。
$.fn.extend({ fun2: function () { alert("执行方法2"); } });
$("#id1").fun2();
可以用google来看看:

上面的写法等同于:
$.fn.fun2 = function () { alert("执行方法2"); }
$(this).fun2();
二、私有域
其定义方式如下:
(function ($) { })(jQuery);
//相当于
var fn = function (xxoo) { };
fn(jQuery);
以下代码弹出123。
$(function(){
var fn = function (xxoo) { };
fn(alert(123));
})
三、定义插件的基本步骤
1、定义作用域
开发一个jQuery插件,首先要把插件的代码与外界隔离开来,外部的代码不允许直接访问插件内部的代码,插件内部的代码也不影响外部。
//步骤1 定义插件私有作用域
(function ($) { })(jQuery);
这样就能保证插件内部的代码与外界隔离了。
2、扩展jQuery
定义了作用域之后,为了能够让外部调用,就需要将插件扩展到jQuery。
//步骤1 定义私有作用域
(function ($) {
//步骤2 插件的扩展方法名称
$.fn.MyFrame = function (options) { }
})(jQuery);
3、默认值
定义了jQuery插件之后,如果希望某些参数具有默认值,那么可以以这种方式来指定。
//步骤1 定义私有作用域
(function ($) {
//步骤3 插件的默认值属性
var defaults = {
Id: '#id1',
};
//步骤2 插件的扩展方法名称
$.fn.MyFrame = function (options) {
//步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
var options = $.extend(defaults, options);
}
})(jQuery);
4、支持jQuery选择器
//步骤1 定义私有作用域
(function ($) {
//步骤3 插件的默认值属性
var defaults = {
Id: '#id1',
};
//步骤2 插件的扩展方法名称
$.fn.MyFrame = function (options) {
//步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
var options = $.extend(defaults, options);
}
//步骤4 支持jQuery选择器
this.each(function () { });
})(jQuery);
5、支持jQuery的链式调用
//步骤1 定义私有作用域
(function ($) {
//步骤3 插件的默认值属性
var defaults = {
Id: '#id1',
};
//步骤2 插件的扩展方法名称
$.fn.MyFrame = function (options) {
//步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
var options = $.extend(defaults, options);
}
//步骤4 支持jQuery选择器
//步骤5 支持链式调用(将步骤4返回)
return this.each(function () { });
})(jQuery);
6、插件内部方法
//步骤1 定义私有作用域
(function ($) {
//步骤3 插件的默认值属性
var defaults = {
Id: '#id1',
}; //步骤6 在插件里定义函数
var MyFun = function (obj) {
alert(obj);
} //步骤2 插件的扩展方法名称
$.fn.MyFrame = function (options) {
//步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults)
var options = $.extend(defaults, options);
}
//步骤4 支持jQuery选择器
//步骤5 支持链式调用(将步骤4返回)
return this.each(function () {
//步骤6 在插件里定义函数
MyFun(this);
});
})(jQuery);
由于作用域关系,步骤6的私有函数目前允许的插件内部使用。
本文乃笔记,原文来自:http://www.cnblogs.com/xcj26/p/3345556.html
jQuery插件开发方式的更多相关文章
- 教你开发jQuery插件(转)
教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文: ...
- 【转】教你开发jQuery插件
阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文:http://www.cnblo ...
- 开发JQuery插件(转)
教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原 ...
- jquery插件与扩展一
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- 如何编写jQuery插件
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- jQuery插件手把手教会(一)
jQuery插件开发教程 ——让你的jQuery水平提升一个台阶 要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台 ...
- 如何使用jQuery写一个jQuery插件
jQuery插件其实是前端框架的思维,构成一个框架,个人认为必须满足以下几个基础条件:1. 可重用,2. 兼容性,3. 维护方便,虽说现在有很多比较成熟的前端框架,但是也有部分存在配置麻烦,学习成本大 ...
- 教你开发jQuery插件
jQuery插件开发模式 软件开发过程中是需要一定的设计模式来指导开发的,有了模式,我们就能更好地组织我们的代码,并且从这些前人总结出来的模式中学到很多好的实践. 根据<jQuery高级编程&g ...
- 转:10条建议让你创建更好的jQuery插件
在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了.使 ...
随机推荐
- PLSQL_性能优化系列19_Oracle Explain Plan解析计划通过Profile绑定
20150529 Created By BaoXinjian
- DBA_Tablespace表空间的概念和管控(概念)
2014-07-24 Created By BaoXinjian
- IP地址查询接口
新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:http://int.dpool. ...
- bug_ _java.lang.IllegalArgumentException: View not attached to window manager
============= 1 view not attached to window manager 转自:http://hi.baidu.com/spare_h/blog/item/7fa3e ...
- Installing Redis on Ubuntu
wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable sudo ...
- 在Virtual Box虚拟机中安装MS DOS!
原文地址:https://mylinuxramblings.wordpress.com/2010/12/05/linux-mint-debian-edition-lmde-first-impressi ...
- 中文unicode范围及unicode编解码
中文unicode范围 : [\u4e00-\u9fa5] 普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码:unicodestring = u"Hello ...
- 聚合查询中的Group by
2005版本以上的sql server 查询中如果既包含聚合函数列(诸如sum ,count,avg,max等)又存在一般列的情况,则查询字符串结尾必须包含Group By [某一般列]. 其实微软 ...
- 第6章 System V消息队列
6.1 概述 System V消息队列在内核中是list存放的,头结点中有2个指针msg_first 和msg_last.其中每个节点包含:下个节点地址的指针.类型.长度.数据等. 6.2 函数 6. ...
- IE10修改select样式
一般我们针对webkit内核的,都使用-webkit-appearance来控制一些表单元素. 但是IE10如何来控制呢? select::-ms-expand{display:none;}