Farbe ändern
schenki
- javascript
0 Andreas Dölling
Hi,
ich hab ein Problem. Ich habe mit PHP dynamische eine Tabelle erstellt und jedes Feld der Tablle hat nun einen Namen und ein onClick () Ereignis. Nun will ich aber das sich die Farbe des Feldes ändert wenn man Clickt....wie kann ich das machen??
Hier mal der Code wie ich ihn mir vorgestellt habe:
function rot (){
this.setAttribute("bgcolor", "#FF0000", "false");
}
thx für jede Hilfe ich probier das ganze jez scho stundenlang in allen möglich Kombinationen aber es will und will nicht gehn. aja und wenns wen interessiert, die Funktion rot () wird wirklich aufgerufen. Das hab ich scho getestet.
Hallo,
thx für jede Hilfe ich probier das ganze jez scho stundenlang in allen möglich Kombinationen aber es will und will nicht gehn. aja und wenns wen interessiert, die Funktion rot () wird wirklich aufgerufen. Das hab ich scho getestet.
laß Dir doch in der Funktion mal Informationen über this ausgeben.
Also so etwas:
alert(this);
Da wirst Du sehen, daß this nicht auf das Objekt verweist, an das Du gedacht hast, sondern auf das aktuelle window-Objekt.
Die Funktion weiß nicht, von woher der Klick kommt, da Du weder das angeklickte Element übergibst noch das event-Objekt.
Versuche es mal so:
<script type="text/javascript">
function rot(srcElement) {
srcElement.style.backgroundColor = "#FF0000";
//srcElement.setAttribute("bgcolor", "#FF0000", "false");
}
</script>
<table border="1">
<tr>
<td onclick="rot(this);">Foo</td>
</tr>
</table>
Zur this-Problematik schau mal unter http://www.quirksmode.org/js/this.html!
Ciao,
Andreas
Danke jetzt funktionierts
hi,
laß Dir doch in der Funktion mal Informationen über this ausgeben.
Also so etwas:
alert(this);Da wirst Du sehen, daß this nicht auf das Objekt verweist, an das Du gedacht hast, sondern auf das aktuelle window-Objekt.
nein, m.E. müsste this in der funktion auf die funktion selber verweisen.
gruß,
wahsaga
Hallo,
nein, m.E. müsste this in der funktion auf die funktion selber verweisen.
nein, innerhalb der Funktion verweist this auf den "Eigentümer" der Funktion, also auf das Objekt, zu welchem die Funktion gehört, und das ist in diesem Fall das window-Objekt (alert(this) bestätigt das ja auch).
Genau wie innerhalb der Methode einer selbstdefinierten Klasse - bzw. eines Objekts dieser Klasse - this auf das Objekt verweist, zu dem die Methode gehört.
Das wird bei quirksmode.org sehr gut beschrieben (überhaupt eine wirklich sehr gute Seite für JS-Interessierte - großes Lob an den Betreiber!).
Ist aber in diesem Fall auch egal - dem Patienten konnte ja geholfen werden.
;)
Ciao,
Andreas