地址

一、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);

JQuery插件开发格式的更多相关文章

  1. jQuery插件开发 格式与解析

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  2. jQuery插件开发 格式与解析2

    最近忙里偷闲玩一下js插件,经过自身的练习,感觉js插件还是挺好玩的.特此作如下笔记,给自己留个印象.例子形如: (1)类插件:classTool.js Code: (function($,expor ...

  3. jQuery插件开发 格式与解析3之$.extend()用途

    前叙:$.extend()——用途:扩展和继承 1.Object extend() 用一个或多个对象扩展另一个对象,并返回已修改的原始对象.这对于简单继承是一个非常有用的实用工具. (1)扩展:(Do ...

  4. JavaScript学习笔记(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  5. JavaScript学习总结(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  6. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  7. 从零开始学jQuery插件开发

    http://www.w3cfuns.com/notes/19462/ec18ab496b4c992c437977575b12736c.html jQuery 最成功的地方,是它的可扩展性,通过吸引了 ...

  8. jquery插件开发继承了jQuery高级编程思路

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  9. jQuery插件开发(转)

    jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ...

随机推荐

  1. web浏览器中的javascript -- 2

    在html里嵌入javascript: 在html文档里嵌入客户端javascript代码有4种方式: 1.内联,放置在<script>和</script>标签对之间; 2.放 ...

  2. [转]Android的网络与通信

    本文转自:http://www.cnblogs.com/qingblog/archive/2012/06/15/2550735.html 第一部分 Android网络基础   Android平台浏览器 ...

  3. js动态生成下拉列表

    经常需要用到js动态生成下拉列表的功能,记录下来备用. 示例需求:通过ajax请求,从后台获取用户姓名列表,并添加到下拉列表中.js代码如下: function getNameList(){ //如果 ...

  4. nginx记录分析网站响应慢的请求(ngx_http_log_request_speed)

    nginx模块ngx_http_log_request_speed可以用来找出网站哪些请求很慢,针对站点很多,文件以及请求很多想找出哪些请求比较慢的话,这个插件非常有效.作者的初衷是写给自己用的,用来 ...

  5. input file request.files[] 为空

    需要在 form 里设置 一句话 :  $('form').attr("enctype", "multipart/form-data"); <form e ...

  6. (poj)Sequence Median

    Description Given a sequence of N nonnegative integers. Let's define the median of such sequence. If ...

  7. error : cannot open source file "SDKDDKVer.h"

    属性->VC++ Directions-> include path 中加了:$(IncludePath) library path 中加了:$(LibraryPath)

  8. Codeforces Round #357 (Div. 2) A

    A. A Good Contest time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  9. 一天一条linux命令 for zipon

    linux学习网站:https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html 19.dhclient eth0 使网卡生效, ...

  10. Windows 2008 R2无法打补丁

    遇到了Windows 2008 R2无法打补丁,并且控制台上的feature和roles都是error 可下载这个补丁进行修复: System Update Readiness Tool for Wi ...