Was ist der beste Weg um herauszufinden, was $(this)
in jQuery derzeit entspricht?
Zum Beispiel ist alert(this);
nicht viel Hilfe.
Der Grund, warum ich frage, ist, dass ein Stück Code derzeit nicht tut, was er tun soll, nachdem ich den Code in eine Funktion verschoben habe.
Der Auszug unten ist jetzt in einer Funktion und $ (dieses) scheint sich jetzt auf das DOMWindow zu beziehen.
%Vor%Wie behalte ich es als $ (this) das ursprüngliche geklickte Element?
Was ist der beste Weg, herauszufinden, was
$(this)
in jQuery derzeit entspricht?
Indem Sie es in die Konsole Ihres bevorzugten JavaScript-Debugging-Tools (wie FireBug oder der Chrome-Entwickler-Toolbar zum Beispiel) einfügen:
%Vor%, das ein umschlossenes jQuery-Objekt zurückgibt. Wenn Sie mehr über das native Objekt wissen möchten, das Sie verwenden könnten:
%Vor% Wenn Sie JavaScript-Entwicklung machen, sollten Sie ein JavaScript-Debugging-Tool verwenden. alert
ist kein solches Werkzeug.
Nachdem Sie Ihre Frage mit einer Codequelle aktualisiert haben, scheint es, dass Sie $(this)
im globalen Bereich verwenden. Dann wird es sich auf das Objekt window
beziehen. Wenn Sie möchten, dass es auf ein angeklicktes Element oder etwas verweist, müssen Sie zuerst das .click-Ereignis abonnieren:
oder wenn Sie diesen Code in einer separaten Funktion externalisieren möchten:
%Vor%oder:
%Vor%Beim Verschieben von Code in eine Funktion ändert sich normalerweise der Umfang des Codes. Also bezieht sich "dies" nicht mehr auf das ursprüngliche Objekt, sondern auf ein neues (oder das globale "Fenster" -Objekt). Wenn Sie uns Ihren Code zeigen, können wir das Problem identifizieren.
Wenn du überprüfen willst, was herumgereicht wird, kannst du entweder meine Version oder prinzhorns Version von jquerylog verwenden. Es sollte Ihnen helfen, Schritt für Schritt zu identifizieren, was passiert:
Für einen Anruf wie:
%Vor%Sie erhalten eine Ausgabe wie diese (die das div in jedem Schritt identifiziert:
%Vor%Tags und Links javascript jquery this