擴展 編寫jQuery插件 新方法是經過擴展$.fn對象實現的 $.fn對象綁定變量 $.fn.highlight1 = function () { // this已綁定爲當前jQuery對象: this.css('backgroundColor', '#fffceb').css('color', '#d85030'); return this; } 函數內部的this在調用時被綁定爲jQuery對象,因此函數內部代碼能夠正常調用全部jQuery對象的方法 簡單的說。新的方法綁定到了jQuery對象中,因此jq對象能使用新方法 咱們得出編寫一個jQuery插件的原則: 1 給$.fn綁定函數,實現插件的代碼邏輯; 2 插件函數最後要return this;以支持鏈式調用; 3 插件函數要有默認值,綁定在$.fn.<pluginName>.defaults上; 4 用戶在調用時可傳入設定值以便覆蓋默認值。 擴展jQuery對象的功能十分簡單 可是咱們要遵循jQuery的原則,編寫的擴展方法能支持鏈式調用、具有默認值和過濾特定元素,使得擴展方法看上去和jQuery自己的方法沒有什麼區別。 鏈式調用:函數最後 return this;返回jq對象 具有默認值:使用$.extend(target, obj1, obj2, ...) 過濾特性元素:調用filter()// jQuery的filter()參數能夠傳入css選擇器、函數 $.extend(target, obj1, obj2, ...),它把後面多個object對象的屬性合併到第一個target對象中,遇到同名屬性,老是使用靠後的對象的值,也就是越日後優先級越高 // 把默認值和用戶傳入的options合併到對象{}中並返回: var opts = $.extend({}, { backgroundColor: '#00a8e6', color: '#ffffff' }, options);