更改插件的默认值

时间:2011-01-12 00:08:41

标签: jquery jquery-plugins

据我所知,您可以使用以下公共默认值创建一个插件:

(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';

我的问题是如何使用$ .fn.extend()语法完成此操作:

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

如何更改多个默认值?

1 个答案:

答案 0 :(得分: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...
});