Creo una semplice estensione jQuery (è la mia prima).crea l'estensione jquery. problemi con scope
(function($){
var MyClass = function(opt){
//..
};
//one of the methods of my extension
$.fn.myExtension = function(opt){
this._ext = new MyClass(opt);
return this;
};
$.fn.myExtensionOtherMethod = function(){
if(this._ext){
//do something ..
}
return this;
};
}(jQuery));
//using ..
$(document).ready(function(){
$('#selector').myExtension({
//options ..
});
$('#selector').myExtensionOtherMethod();
});
quando invoco metodo $('#selector').myExtensionOtherMethod();
, this
non fa contiene this._ext
variabile. So che questo è un altro ambito, ma so che c'è un modo per accedere a quella variabile in entrambi i metodi. Come posso farlo?
Qual è il tuo obiettivo finale, vuoi una nuova istanza di myClass o opzioni per ogni elemento che corrisponde al selettore o una singola istanza di myClass che verrà utilizzata dall'estensione indipendentemente dall'elemento selezionato? –
Stai creando un oggetto diverso ogni volta che usi '$ ('# selector')'. – charlietfl
Cosa stai cercando di realizzare? L'uso di 'data()' sarà probabilmente d'aiuto – charlietfl