He creado un plugin jQuery y funciona bastante bien. Excepto que cuando tengo varias instancias en la misma página, las opciones/configuraciones de la última instancia se usan para ambas.configuración jquery con instancias predeterminadas y múltiples
Aquí hay una versión reducida ... disculpe por la duración.
(function() {
var settings = {};
var defaults = {
duration : 1000,
easingShow : 'easeOutBounce',
easingHide : 'easeOutQuad'
};
var methods = {
init : function(options) {
return this.each(function(n) {
settings = $.extend(defaults, options);
});
},
show : function() {
// settings used here
},
hide : function() {
// also used here
}
};
$.fn.expander = function(method) {
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.expander');
}
};
})(jQuery);
Estoy seguro de que es un tipo de problema de espacio de nombres, ya que me confunde con frecuencia.
Gracias
Gracias, pero creo que te has perdido el tema. El problema no está en la forma en que estoy configurando la variable de configuración. Es que si lo configuro en la sección 'return this.each (function() {});', entonces no puede acceder a la función show and hide. Pero si lo configuro afuera, como lo he hecho, es lo mismo para cada elemento que tenga el complemento habilitado en él. – ianbarker
Compruebe la demostración, debería hacer lo que necesita. – roberkules
Quisiera intentar y evitar el uso de datos() pero supongo que es la única manera. – ianbarker