成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? jQuery定義插件的方法
全站頭部文字 我要出現在這里
jQuery定義插件的方法 674 2024-03-16   

有些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定義插件的方法,希望大家喜歡。



主站蜘蛛池模板: 卡士酸奶尽量少吃| 想想办法吧爸爸| 不回微信判30年图片| https://www.douyin.com/pay| 刘淑华| 赫伯曼电影免费观看| 山东教育电视台直播| 投名状在线观看| 房屋归属协议书模板| 可爱美女跳舞蹈视频| 绿野仙踪手抄报| 秀人网门户网免费| 快手快枪快手演员表| 韩国青草视频| 小城故事多歌曲原唱| 我有一个好朋友作文二年级| 整容前后| 浙江卫视今天全部节目表| 炊事班班长述职报告| yotobe| s0hu搜狐| 蒋芸| 《隐秘而伟大》电视剧| 李修蒙出生年月| 马子俊| 第一财经现场直播| 二年级上学期口算题| 肖央演过的电影| 蔡贞安| 欧布奥特曼普通话版| 上锁的房间演员表| 药师心咒全文注音| 《黑帮少爷爱上我》| 协议过户什么意思| 听风者电视剧演员表| 电影处女地| 爱情最美丽 电视剧| 快播王欣| 赵士杰| 3d成人国产同人动漫焰灵姬 | 楼下的房客 电影|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103