Ergebnis 1 bis 8 von 8
-
06-01-2009, 21:55 #1
Grünschnabel
- registriert
- 06-01-2009
- Beiträge
- 5
[jQuery] in $.post() auf this zugreifen?
Hallo,
das ist mein erster Post hier, aber "über-Code-meckern" ist trotzdem erlaubt
Erstmal ein Bild, das Template (Genshi) und mein JS-Code. Die Daten in der Tabelle kommen aus einer Datenbank. Was ich vorhabe ist folgendes: Wenn auf eines der Icons geklickt wurde, wird ein POST-Request an den Server geschickt (funktioniert). Anschließend soll das Icon geändert werden (funktioniert nicht). Eigentlich ist das ja eine triviale Aufgabe; mein Problem ist nur, dass ich in der Funktion $.post nicht mit this auf den angeklickten Link zugreifen kann. Wenn ich das versuche, greife ich mit this auf das aktuelle Objekt zu, also ist this in dem Fall eine Referenz zur Funktion $.post.
Falls ihr vom Genshi-Template zu verwirrt sein solltet, hier das generierte XHTML (nur der entscheidende Teil).
HINWEIS: Cross-Post mit [jQuery] in $.post() auf this zugreifen? - XHTMLforum
-
06-01-2009, 22:05 #2
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: [jQuery] in $.post() auf this zugreifen?
Code:$(document).ready(function() { $(".toggle-user-activity").click(function() { function getCallback(obj) { return function(active) { image = (active) ? "dialog-apply.png" : "edit-delete.png"; path = "<img src=\"/static/images/icons/" + image + "\" alt=\"" + active + "\" />" console.log(path); // Wie kann ich hier auf den angeklickten Link zugreifen? Nicht mit this! // mit obj } } $.post(this.href, getCallback(this)); return false; }); }
Code:$(document).ready(function() { $(".toggle-user-activity").click(function() { var obj = this; $.post(this.href, function(active) { image = (active) ? "dialog-apply.png" : "edit-delete.png"; path = "<img src=\"/static/images/icons/" + image + "\" alt=\"" + active + "\" />" console.log(path); // Wie kann ich hier auf den angeklickten Link zugreifen? Nicht mit this! // mit obj }); return false; }); }
-
06-01-2009, 22:39 #3
Grünschnabel
- registriert
- 06-01-2009
- Beiträge
- 5
AW: [jQuery] in $.post() auf this zugreifen?
Danke für die Antwort! Jetzt habe ich ein sehr seltsames Verhalten entdeckt: das Bild kann nur von "edit-delete.png" zu "dialog-apply.png" geändert werden --- aber nicht umgekehrt
Mein Code sieht jetzt so aus:Paste #98373 | LodgeIt!
Ich habe mit jQuery allgemein noch nicht so viel Erfahrung, ist html(val) da überhaupt die richtige Funktion? Mit Firebug habe ich herausgefunden, dass sich die Variable image sich nie ändert. Ob die Variable lokal oder global ist, spielt scheinbar keine rolle.
-
06-01-2009, 22:50 #4
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: [jQuery] in $.post() auf this zugreifen?
Ich habe auch keine Ahnung von jQuery. wenn es aber in eine richtung geht, hat es nichts mit der html funktion zu tun. (obj.innerHTML=path; würde es auch machen).
was übergibt post denn an das callback als parameter. dein active ist auf jeden fall immer != 0.
-
07-01-2009, 15:48 #5
Grünschnabel
- registriert
- 06-01-2009
- Beiträge
- 5
AW: [jQuery] in $.post() auf this zugreifen?
Was meinst du mit "in eine Richtung"?
Nein, leider nicht. Wie man in der Doku von jQuery lesen kann, istCode:$(obj).html(val)
Code:obj.innerHTML = val
-
07-01-2009, 16:12 #6
Grünschnabel
- registriert
- 06-01-2009
- Beiträge
- 5
AW: [jQuery] in $.post() auf this zugreifen?
Ich habe jetzt einen Weg gefunden, der funktioniert!
Ich lasse den Pfad komplett serverseitig generieren. Dann klappts auch mit den Nachbarn. Das JS-Skript ist somit ein wenig geschrumpft: Paste #98452 | LodgeIt!
Ob das der optimale weg ist, weiß ich nicht. Jedenfalls klaptt es jetzt. Und das beste: JavaScript wird nicht vorausgesetzt, es funktioniert auch ohne (dann muss aber die ganze Seite neu geladen werden).
PS: Ja, ich finde die Smilyes von macuser.de nu' mal schöner
-
07-01-2009, 16:21 #7
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: [jQuery] in $.post() auf this zugreifen?
das hier:
was unterscheidet
von dem du sagst es geht nicht, vondeine funktion die du post übergibst erwartet einen parameter active
Code:$.post(this.href, function(active) {
das beweist nichts(wenn meine Vermutung stimmt, genau das gegenteil)! aber da du dir scheinbar nicht helfen lassen willst...Geändert von tsseh (07-01-2009 um 16:29 Uhr)
-
07-01-2009, 17:59 #8
Grünschnabel
- registriert
- 06-01-2009
- Beiträge
- 5
AW: [jQuery] in $.post() auf this zugreifen?
Danke für die Erklärungen und Denkanstöße! Jetzt habe ich verstanden, was du meinst. Ich musste letztendlich nur die Bedingung in Zeile 3 ändern. Das Skript sieht jetzt so aus und funktioniert auch: Paste #98464 | LodgeIt!
Ähnliche Themen
-
auf externen DOM zugreifen?
Von AlphaGen im Forum JavaScriptAntworten: 8Letzter Beitrag: 05-12-2008, 15:10 -
Auf unterstes Frame zugreifen
Von Lioba im Forum JavaScriptAntworten: 7Letzter Beitrag: 05-11-2007, 00:26 -
Foldout Menü vertikal mit 2 Subebenen
Von RealGsus im Forum JavaScriptAntworten: 3Letzter Beitrag: 01-11-2007, 10:48 -
Auf Request Parameter zugreifen
Von thea im Forum JavaScriptAntworten: 1Letzter Beitrag: 29-09-2006, 21:03 -
Auf InnerText eines Elements in ANDEREM FRAME zugreifen?
Von Master_Retsam im Forum JavaScriptAntworten: 3Letzter Beitrag: 31-07-2006, 18:23
Lesezeichen