国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery定義插件的方法

2019-11-20 10:59:34
字體:
來源:轉載
供稿:網友

有些WEB開發者,會引用一個JQuery類庫,然后在網頁上寫一寫$("#"),$("."),寫了幾年就對別人說非常熟悉JQuery。我曾經也是這樣的人,直到有一次公司里的技術交流,我才改變了自己對自己的看法。

擴展jquery的時候。最核心的方法是以下兩種:

$.extend(object) 可以理解為jquery添加一個靜態方法

$.fn.extend(object) 可以理解為jquery實例添加一個方法

$.extend(object)

 例子:

/* $.extend 定義與調用* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */$.extend({ fun: function () { alert("執行方法一"); } });//定義$.fun();//調用$.fn.extentd(object)/* $.fn.extend 定義與調用* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */$.fn.extend({ fun: function () { alert("執行方法"); } });$(this).fun();//等同于$.fn.fun = function () { alert("執行方法三"); }$(this).fun();

定義jquery插件的基本結構

1.  定義作用域:

為插件定義一個私有作用域。外界代碼不能直接訪問插件內部。插件內部代碼不受外界干擾,也不會污染到全局變量。

  //step 定義JQuery的作用域(function ($) {})(jQuery);

2. 為插件添加擴展方法:

//step01 定義JQuery的作用域(function ($) {  //step02 插件的擴展方法名稱  $.fn.easySlider = function (options) {      }})(jQuery);

3. 設置默認值:

//step 定義JQuery的作用域(function ($) {  //step-a 插件的默認值屬性  var defaults = {    prevId: ‘prevBtn‘,    prevText: ‘Previous‘,    nextId: ‘nextBtn‘,    nextText: ‘Next‘    //……  };  //step 插件的擴展方法名稱  $.fn.easySlider = function (options) {    //step-b 合并用戶自定義屬性,默認屬性    var options = $.extend(defaults, options);  }})(jQuery);

其中:var options = $.extend(defaults, options)的含義了。表示 options 去覆蓋了defaults的值,并把值賦給了options。
在插件環境中,就表示用戶設置的值,覆蓋了插件的默認值;如果用戶沒有設置默認值的屬性,還是保留插件的默認值。

4. 支持jquery選擇器:    

 //step 定義JQuery的作用域(function ($) {  //step-a 插件的默認值屬性  var defaults = {    prevId: ‘prevBtn‘,    prevText: ‘Previous‘,    nextId: ‘nextBtn‘,    nextText: ‘Next‘    //……  };  //step 插件的擴展方法名稱  $.fn.easySlider = function (options) {    //step-b 合并用戶自定義屬性,默認屬性    var options = $.extend(defaults, options);    //step 支持JQuery選擇器    this.each(function () {    });  }})(jQuery);

5 .支持JQuery的鏈接調用:

為了能達到鏈接調用的效果必須要把循環的每個元素return

//step 定義JQuery的作用域(function ($) {  //step-a 插件的默認值屬性  var defaults = {    prevId: ‘prevBtn‘,    prevText: ‘Previous‘,    nextId: ‘nextBtn‘,    nextText: ‘Next‘    //……  };  //step 插件的擴展方法名稱  $.fn.easySlider = function (options) {    //step-b 合并用戶自定義屬性,默認屬性    var options = $.extend(defaults, options);    //step 支持JQuery選擇器    //step 支持鏈式調用    return this.each(function () {    });  }})(jQuery);

6. 插件里的方法:

在插件里定義的方法,外界不能直接調用,我在插件里定義的方法也沒有污染外界環境。

//step01 定義JQuery的作用域(function ($) {  //step03-a 插件的默認值屬性  var defaults = {    prevId: ‘prevBtn‘,    prevText: ‘Previous‘,    nextId: ‘nextBtn‘,    nextText: ‘Next‘    //……  };  //step06-a 在插件里定義方法  var showLink = function (obj) {    $(obj).append(function () { return "(" + $(obj).attr("href") + ")" });  }  //step02 插件的擴展方法名稱  $.fn.easySlider = function (options) {    //step03-b 合并用戶自定義屬性,默認屬性    var options = $.extend(defaults, options);    //step4 支持JQuery選擇器    //step5 支持鏈式調用    return this.each(function () {      //step06-b 在插件里定義方法      showLink(this);    });  }})(jQuery);

通過以上內容給大家介紹了jQuery定義插件的方法,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漳浦县| 洛川县| 云梦县| 汉中市| 额尔古纳市| 自治县| 连云港市| 兴和县| 北川| 凤凰县| 班戈县| 晋中市| 景洪市| 剑阁县| 汨罗市| 耒阳市| 监利县| 汤阴县| 安乡县| 鄂温| 桑日县| 武功县| 启东市| 嘉峪关市| 乌恰县| 抚松县| 祁阳县| 漾濞| 三河市| 南丰县| 饶河县| 南城县| 延吉市| 龙门县| 寿光市| 高邮市| 江城| 鹿邑县| 醴陵市| 莎车县| 临洮县|