2011-01-12 162 views
6

據我所知,您可以創建具有公共默認這樣的插件:更改插件的默認

(function($){ 
$.fn.hilight = function(options) { 
    var opts = $.extend({}, $.fn.hilight.defaults, options); 
    this.css(opts); 
}; 
$.fn.hilight.defaults = { 
    foreground: 'red' 
}; 
})(jQuery); 

,然後我可以通過改變來自外部的默認值:

$.fn.hilight.defaults.foreground='blue'; 

我的問題(s)是如何使用$ .fn.extend()語法完成的:

(function($){ 
    $.fn.extend({ 
    hililght: function(options){ 
     var defaults={foreground: 'red',} 
     var opt=$.extend(defaults,options); 
     } 
    }); 
})(jQuery) 

而我該如何更改多個默認值?

回答

5

可以做到這一點:

(function($){ 
    $.fn.extend({ 
    hilight: function(options){ 
     var opt=$.extend(defaults,options); 
    } 
    }); 
    $.extend($.fn.hilight, {defaults: { 
     foreground: 'red' 
    }}); 
})(jQuery) 

但沒有太多的點。 $.fn.extend僅在您有多個屬性可以擴展時纔有用,但您只有hilight。堅持你的第一個例子,它更具可讀性和(稍微)更高效。

jQuery的extend功能適用於您的第二個問題,關於更改多個默認值。這是extend真的設計用於:

$.extend($.fn.hilight.defaults, { 
    foreground: "red", 
    background: "yellow", 
    height: 100 
    // and so on... 
}); 
+0

我會使用多種功能.fn.extend的$()裏面所以它最終會被有效的。感謝第二位代碼。 – Theopile 2011-01-12 04:17:56