использовать статический набор значений по умолчанию вместо жесткого их кодирования. таким образом, пользователь может переопределить их, хотя бы установил их в вызове, например:
$.fn.tagCloud.defaults = {
maxPercent: 150,
minPercent: 100,
countCallback: function(element){return $(element).attr('rel');},
applyCallback: function(element, size) { $(element).attr('style', 'font-size:' + size + '%;');}
};
И тогда в самом начале вашего плагина вы бы заменили множество этих объявлений var на простой:
var o = $.extend($.fn.tagCloud.defaults, options||{});
тогда вы получите доступ ко всему с помощью o.*
или o['*']
. Id также превратит некоторых из вас в логику в инкапсулированные методы. Обычно я хочу / ожидаю увидеть только один блок this.each () для первичной логики.
Кроме того, я считаю, что если у вашего селектора нет элементов в его коллекции, вы будете делить на 0 или NaN, что обычно является нет-нет. Если я прав, вы можете установить значение по умолчанию min / max равным 1 или выполнить простую проверку, чтобы убедиться, что длина коллекции> 0, и выручить, если она не зависит от того, что вы хотите.