jQuery外掛程式開發
一般來說,jQuery外掛程式的開發分為兩種:一種是掛在jQuery命名空間下的全域函數,也可稱為靜態方法;另一種是jQuery物件層級的方法,即掛在jQuery原型下的方法,這樣透過選擇器取得的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();
以下代碼彈出123。
(function ($) { })(jQuery); //相当于 var fn = function (xxoo) { }; fn(jQuery);
三、定義插件的基本步驟
1、定義作用域
發一個jQuery插件,要把內部插件開發的程式碼與外界外掛程式的外部程式碼與外部程式碼直接存取的外掛程式程式碼,插件內部的程式碼也不影響外部。
//步驟1 定義插件私有作用域
$(function(){ var fn = function (xxoo) { }; fn(alert(123)); })
這樣就能確保插件內部的程式碼與外界隔離了。
2、擴展jQuery
定義了作用域之後,為了能夠讓外部調用,就需要將插件擴展到jQuery。
(function ($) { })(jQuery);
3、預設值
定義了jQuery插件之後,如果希望某些參數具有預設值,那麼可以以此方式指定。
//步骤1 定义私有作用域 (function ($) { //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { } })(jQuery);
4、支援jQuery選擇器
//步骤1 定义私有作用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults) var options = $.extend(defaults, options); } })(jQuery);
5
6、外掛內部方法
//步骤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);
由於作用域關係,步驟6的私有函數目前允許的插件內部使用。