一、$.extend(object)html
相似于.Net的扩展方法,用于扩展jQuery。而后就能够用$.的方式调用。函数
$(function(){ $.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } }); $.fun1(); })
二、$.fn.extend(object)this
扩展jQuery的对象。google
$.fn.extend({ fun2: function () { alert("执行方法2"); } }); $("#id1").fun2();
能够用google来看看:spa
上面的写法等同于:插件
$.fn.fun2 = function () { alert("执行方法2"); } $(this).fun2();
其定义方式以下:code
(function ($) { })(jQuery); //至关于 var fn = function (xxoo) { }; fn(jQuery);
如下代码弹出123。htm
$(function(){ var fn = function (xxoo) { }; fn(alert(123)); })
一、定义做用域对象
开发一个jQuery插件,首先要把插件的代码与外界隔离开来,外部的代码不容许直接访问插件内部的代码,插件内部的代码也不影响外部。blog
//步骤1 定义插件私有做用域 (function ($) { })(jQuery);
这样就能保证插件内部的代码与外界隔离了。
二、扩展jQuery
定义了做用域以后,为了可以让外部调用,就须要将插件扩展到jQuery。
//步骤1 定义私有做用域 (function ($) { //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { } })(jQuery);
三、默认值
定义了jQuery插件以后,若是但愿某些参数具备默认值,那么能够以这种方式来指定。
//步骤1 定义私有做用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(若是options为空,则使用defaults) var options = $.extend(defaults, options); } })(jQuery);
四、支持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);
五、支持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);
六、插件内部方法
//步骤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