wahsaga: Könbnt ihr mir auf die Sprünge helfen?

Beitrag lesen

hi,

Ich würde gerne eine Funktion schreiben, die sich irgendein Element per ID oder Class holt. Und dieses Element soll die Schriftfarbe bei mouseover verändern.

Dass das in richtigen Browsern auch per CSS mittels :hover geht, ist dir bekannt?

PS: Hier noch ein kleiner Versuch von mir, der natürlich nicht geht.

Sieht eigentlich schon gar nicht so schlecht aus.

document.getElementById("hallo").onmouseover = farbe;

Referenz auf Element besorgen, und dem Eventhandler onmouseover die Funktionsreferenz farbe zuweisen - ist eigentlich OK.

function farbe() {
document.getElementById("hallo").style.color = "#FF0000";
}

Referenz auf Element erneut besorgen ist hier überflüssig - du könntest in der Funktion mittels this auf das Element, auf dem der Event auftrat zugreifen - aber nicht falsch. Farbe ändern über style.color sieht auch OK aus.

Vermutlich dürfte das Problem einfach sein, dass zu dem Zeitpunkt, wo du das erste, die Zuweisung des Eventhandlers, zu machen versuchst, das Element noch gar nicht existiert.
Also entweder <script>-Block hinter das Element packen (unschön), oder diese Aktion per onload aufrufen.

Das könnte z.B. so aussehen:

window.onload = function() {  
   document.getElementById("hallo").onmouseover = farbe;  
}

Durch die Umklammerung mit functiob() { ... } erhalten wir eine Funktionsreferenz, und diese wird dann dem onload-Event zugewiesen.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }