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 大部分的代码结构,只要专注最主要的逻辑代码就行了.使 ...
随机推荐
- shell中大小写转换
有两种方式: 1.用tr 例如:UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]') (把VARIABLE的小写转换成大写) LOWERCASE=$(e ...
- hibernate 大对象映射
1. 在pojo类中 用Blob类和Clob public class Student { private int id; private String name; private int age; ...
- [技巧]实际项目中background-image应写在页面上
摘自:http://www.zhangxinxu.com 因为实际项目中(数据对接时),这肯定是个动态的URL地址,css文件似乎不支持动态URL 地址. <img src="../i ...
- 转--Android:TextView属性大全
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) android ...
- Java中类的加载、连接和初始化
Java中类的加载.连接和初始化 类的加载.连接和初始化 先介绍一下JVM和类 JVM和类: 当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多 ...
- JS的Data类型格式化(转)
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...
- IP地址漂移的实现与原理
当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了 ...
- bootstrap小例子等
一个简单的表单样式: <div class="row"> <form action="#" class="form-horizont ...
- sqlserver函数大全
一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...
- tomcat服务器不输出访问日志
有时候一个WEB服务作为接口部署在tomcat下,因为访问很频繁,导致/var/log/tomcat7下的访问日志急剧膨胀,影响服务器的性能. 在这里我的方法是关闭访问日志,关闭方法为将访问日志的输出 ...