更改插件的默认值

The*_*ile 6 jquery jquery-plugins

我知道你可以用这样的公共默认值创建一个插件:

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

然后我可以通过以下方式更改外部的默认值:

$.fn.hilight.defaults.foreground='blue';
Run Code Online (Sandbox Code Playgroud)

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

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

我怎样才能更改多个默认值?

Dav*_*ang 5

可以这样做:

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

但没有多大意义.$.fn.extend仅当您有多个要扩展的属性时才有用,但您只有hilight.坚持你的第一个例子,它更具可读性和(略微)更高效.

jQuery的extend功能在第二个问题上派上用场,关于更改多个默认值.这是extend真正的设计:

$.extend($.fn.hilight.defaults, {
    foreground: "red",
    background: "yellow",
    height: 100
    // and so on...
});
Run Code Online (Sandbox Code Playgroud)