This article discute escribir jQuery plugins/libraries con detalles insoportables.
qué no hacer:
(function($){
$.fn.tooltip = function(options) { // THIS };
$.fn.tooltipShow = function() { // IS };
$.fn.tooltipHide = function() { // BAD };
$.fn.tooltipUpdate = function(content) { // !!! };
})(jQuery);
Qué hacer:
(function($){
var methods = {
init : function(options) { // THIS },
show : function() { // IS },
hide : function() { // GOOD },
update : function(content) { // !!! }
};
$.fn.tooltip = function(method) {
// Method calling logic
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
})(jQuery);
También escribió un año pasado blog post sobre varios métodos para namespacing en JavaScript (jQuery no relacionado).
LOL no añadir sus propiedades a jQuerys espacio de nombres ... –
Sumérgete en RequireJS para la gestión plugin de jQuery no;) – BGerrissen