Query插件开发 jquery
通常来讲,jQuery插件的开发分为两种:一种是挂在jQuery命名空间下的全局函数,也可称为静态方法;另外一种是jQuery对象级别的方法,即挂在jQuery原型下的方法,这样经过选择器获取的jQuery对象实例也能共享该方法。ajax
1、jQuery扩展bootstrap
一、$.extend(object)jquery插件
相似于.Net的扩展方法,用于扩展jQuery。而后就能够用$.的方式调用。异步
?函数
1ui 2this 3google 4spa |
$( function (){ $.extend({ fun1: function () { alert( "为jQuery扩展一个fun1函数!" ); } }); $.fun1(); }) |
二、$.fn.extend(object)
扩展jQuery的对象。
?
1 2 |
$.fn.extend({ fun2: function () { alert( "执行方法2" ); } }); $( "#id1" ).fun2(); |
能够用google来看看:

上面的写法等同于:
?
1 2 |
$.fn.fun2 = function () { alert( "执行方法2" ); } $( this ).fun2(); |
2、私有域
其定义方式以下:
?
1 2 3 4 |
( function ($) { })(jQuery); //至关于 var fn = function (xxoo) { }; fn(jQuery); |
如下代码弹出123。
?
1 2 3 4 |
$( function (){ var fn = function (xxoo) { }; fn(alert(123)); }) |
3、定义插件的基本步骤
一、定义做用域
开发一个jQuery插件,首先要把插件的代码与外界隔离开来,外部的代码不容许直接访问插件内部的代码,插件内部的代码也不影响外部。
//步骤1 定义插件私有做用域
?
1 2 3 |
( function ($) { })(jQuery); |
这样就能保证插件内部的代码与外界隔离了。
二、扩展jQuery
定义了做用域以后,为了可以让外部调用,就须要将插件扩展到jQuery。
?
1 2 3 4 5 6 7 |
//步骤1 定义私有做用域 ( function ($) { //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { } })(jQuery); |
三、默认值
定义了jQuery插件以后,若是但愿某些参数具备默认值,那么能够以这种方式来指定。
?
1 2 3 4 5 6 7 8 9 10 11 12 |
//步骤1 定义私有做用域 ( function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1' , }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(若是options为空,则使用defaults) var options = $.extend(defaults, options); } })(jQuery); |
四、支持jQuery选择器
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//步骤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); |
五、支持jQuery的链式调用
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//步骤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); |
六、插件内部方法
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//步骤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的私有函数目前容许的插件内部使用。
以上就是本文的所有内容,但愿对你们有所帮助,谢谢对脚本之家的支持!
您可能感兴趣的文章: