Configuración de uso compartido entre métodos en el complemento jQuery de espacios de nombres
Estoy escribiendo un complemento y siguiendo la práctica recomendada de la documentación de jQueryhttp: //docs.jquery.com/Plugins/Authorin cuando se trata de espacios de nombres y múltiples métodos.
Mi init () se encarga de fusionar las configuraciones predeterminadas y personalizadas usando $ .extend (), sin embargo, no puedo entender cómo hacer que esas opciones estén disponibles fuera del método init (). Diga esa llamada e inicialice mi complemento usando
$("a").myplugin({debug:false});
¿cómo puedo hacer referencia a la propiedad de depuración más tarde cuando llamo a
$("a").myplugin("someMethod")?
Un ejemplo aproximado es:
(function( $ ){
var methods = {
init: function(customSettings) {
var options = {
debug: true
}
return this.each(function () {
if (customSettings) {
$.extend(options, customSettings);
}
});
},
someMethod: function() {
if(options.debug) { // <-- How can I access options here?
// do something
}
}
}
})( jQuery );
$.fn.myplugin = 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.tbwaga');
}
};