Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.10.2005, 16:56
Kriz



Folgendes:

Momentan löse ich einen Hovereffekt für HTML Elemente mit den üblichen "umständlichen" Lösungswegen:
Quellcode:onmouseover="hover(AKTION, 'ELEMENT_ID');"
onmouseout="hover(AKTION, 'ELEMENT_ID');"
wobei AKTION entweder 1 für Hintergrundfarbe ändern via CSS bzw. 0 für ursprüngliche Hintergrundfarbe wiederherstellen ist und ELEMENT_ID die ID des betreffenden HTML Elements ist. Die JS Funktion sieht dabei so aus:
Quellcode:function hover(aktion, id)
{
    if(aktion == 1)
    {
        document.getElementById(id).style.backgroundColor = "yellow";
    }
    else
    {
        document.getElementById(id).style.backgroundColor = "white";
    }
}
Soweit sogut. Irgendwie beschleicht mich aber das Gefühl, daß dieses irgendwie auch einfacher gehen müsste. Ist es möglich, daß ich anhand der JS Eventhandler rauskriegen kann, _welches_ HTML Element das Event ausgelöst hat? Dann könnte man sich eine Menge unnützen Schreibkram ersparen und die ID des Elements bequem in Erfahrung bringen und wie oben gesehen nutzen. Idealerweise sollte die JS Funktion nur noch so aussehen:
Quellcode:function hover(aktion)
{
    id = // Bla bla ID rauskriegen blub blubber
    // Rest wie oben
}
Hat da jemand diesbezüglich eine konforme Idee?

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
001
05.10.2005, 18:00
hausi



Über die aktion (was übrigens ein Event ist), geht das nicht. Ich mache das aber immer so, dass ich im Handler den Aufruf so mache:
Quellcode:onmouseover="hover( this, true )" onmouseout="hover( this, false ) Dann kannst du im JavaScript einfach folgenden Code verwenden:
Quellcode:funtion hover( element, do_hover )
{
    if( do_hover )
        element.style.backgroundColor = "yellow";
    else
        element.style.backgroundColor = "white";
}
Ist jetzt nicht getestet, dürfte aber keinen Fehler haben :).

--

zum Seitenanfang zum Seitenende Profil || Suche
002
05.10.2005, 19:02
Kriz



Na, das hört sich doch schonmal gut an. Ich probier's gleich mal aus :)

--------

Wunderbar, funzt. Danke Superhausi!

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 05.10.2005 um 19:06 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche