JS Object this.method () bricht über jQuery ab
Ich bin mir sicher, dass es eine einfache Antwort darauf gibt, aber es ist Freitagnachmittag und ich bin müde. :(
Ich bin mir nicht sicher, wie ich das erklären soll, also schreibe ich einfach einen Beispielcode ...
Hier ist ein einfaches Objekt:
var Bob =
{ Stuff : ''
, init : function()
{
this.Stuff = arguments[0]
}
, doSomething : function()
{
console.log( this.Stuff );
}
}
Und hier wird es benutzt:
$j = jQuery.noConflict();
$j(document).ready( init );
function init()
{
Bob.init('hello');
Bob.doSomething();
$j('#MyButton').click( Bob.doSomething );
}
Alles funktioniert, bis auf die letzte Zeile. Wenn jQuery die Methode doSomething aufruft, überschreibt es "this" und verhindert, dass es funktioniert.
Ich versuche es einfach zu benutzenStuff
funktioniert auch nicht.
Wie verweise ich auf die eigenen Eigenschaften eines Objekts, sodass jQuery es aufrufen und das Objekt mit dem aufrufenden jQuery-Objekt arbeiten kann?
Ich möchte in der Lage sein, Dinge wie diese zu tun:
doSomething : function()
{
console.log( <CurrentObject>.Stuff + $j(<CallerElement>).attr('id') );
}
(Woher<CurrentObject>
und<CallerElement>
werden durch entsprechende Namen ersetzt.)