Hallo,
ich bin gerade an einem Punkt, an dem ich nicht weiterkomme.
Für unsere kleine Community (12 Leute) programmiere ich gerade in unserem Board eine Bewertungfunktion ein. Jeder Beitrag kann mit "like" oder "dislike" bewertet werden. Ganz ähnlich der Bewertungs-Funktion in Facebook und anderen sozialen Netzwerken.
Wenn der momentan eingeloggte User noch keine Bewertung zu einem Beitrag abgegeben hat, werden beide Buttons angezeigt.
Klickt der User nun auf einen Button, wird seine Bewertung im Hintergrund abgespeichert (Ajax mit JQuery) und es soll - hier liegt mein Problem - der eben geklickte Button ausgeblendet werden. So soll nach einer Bewertung nur noch die Möglichkeit bestehen, die Bewertung von "Like" zu "Dislike" abzuändern, und umgekehrt.
Wie schon gesagt, dieses Ausblenden bereitet mir momentan Probleme.
Die Buttons sehen wie folgt aus:
<span>
<a href="javascript:vote(<user_id>, <post_id>, 'like', this)">
<img class="like_btn" src="img/like_50.png" alt="">
</a>
<a href="javascript:vote(<user_id>, <post_id>, 'dislike', this)">
<img class="dislike_btn" src="img/dislike_50.png" alt="">
</a>
</span>
Das <span> ist dem Aufbau des Boards geschuldet.
Die Parameter werden alle erfolgreich in die Funktion "vote" übertragen, und diese kann ich auch mit JQuery wunderbar an eine PHP-Datei schicken, die die Bewertung in die Datenbank schreibt.
Mit JQuery sollte es auch kein Problem sein, über den vierten Parameter "this", das Kindelement (hier das <img>) auszublenden.
Aber "this" verweist in der Funktion "vote" immer auf das HTML-Window-Objekt.
In vielen Artikeln, die ich gegoogelt habe, steht, dass nur im onClick-Attribut "this" auf das eigentliche Eltern-Element verweist. Auch das habe ich versucht, aber auch hier versteckte sich hinter "this" das HTML-Window-Objekt.
Wie müsste ich richtigerweise an das Problem herangehen? Ich vermute, dass es über diesen Weg nicht funktionieren wird.
Freundliche Grüße
SchlafenDer