Изменить настройки по умолчанию для плагина - PullRequest
6 голосов
/ 12 января 2011

Я понимаю, что вы можете создать плагин с общедоступными настройками по умолчанию:

(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 Ответ

5 голосов
/ 12 января 2011

Вы могли бы сделать это:

(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...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...