Ich erstelle eine einfache jQuery-Erweiterung (es ist meine erste).jQuery-Erweiterung erstellen. Probleme mit Bereich
(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();
});
wenn i Methode aufrufen $('#selector').myExtensionOtherMethod();
, this
nicht enthält this._ext
Variable. Ich weiß, dass dies ein anderer Bereich ist, aber ich weiß, dass es eine Möglichkeit gibt, auf diese Variable in beiden Methoden zuzugreifen. Wie kann ich das tun?
Was ist Ihr Endziel, möchten Sie eine neue Instanz von myClass oder Optionen für jedes Element, das dem Selektor entspricht, oder eine einzelne Instanz von myClass, die von Ihrer Erweiterung verwendet wird, egal welches Element ausgewählt ist? –
Sie erstellen jedes Mal ein anderes Objekt, wenn Sie '$ ('# selector')' verwenden. – charlietfl
Was versuchst du zu erreichen? Die Verwendung von 'data()' wird wahrscheinlich helfen – charlietfl