Cheatah: OnMouseover soll gehighlighted bleiben

Beitrag lesen

Hi,

Unsere Studis wollen eine Webseite mit Frames erstellen (so weit so schlecht).
Auf der linken Seite befindet sich sich die Menü/Navigationsleiste
und auf der rechten Seite (na klar, wie sonst) der anzuzeigende
Inhalt. Nun soll beim Überfahren mit der Maus der jeweilige Eintrag
gehighlighted werden (blöde Eindeutschung, sorry), was mit
"OnMouseover" ja kein Problem darstellt. Doch nun kommts: Der
angeklickte Link soll die Highlight-Farbe (notfalls auch eine andere)
behalten, aber es soll nicht unbedingt der linke Frame neu geladen
werden und die Highlight-Funktion muß weiterhin funktionieren....
Ich habe erfolgslos mit "Onclick" und weiteren Event-Handlern
herumexperimentiert und mich auch auf anderen Seiten
umgeschaut. Bis jetzt leider Fehlanzeige...

das Problem liegt hier wohl beim onMouseOut, mit dem der Highlight-Modus wieder deaktiviert wird. In dem Fall, daß der Button angeklickt wird (onClick) muß dem Script also gesagt werden, daß onMouseOut nicht mehr gilt. Wie macht man das? Man setzt sich eine Variable, die den aktuell angeklickten Button beinhaltet (am Anfang z.B. den Wert -1). onMouseOut prüft man jetzt, ob diese Variable den aktuellen Button enthält und tut in dem Fall halt gar nichts.

Hinweise:

  • onClick zunächst prüfen, welcher Button bisher angeklickt war, für diesen das onMouseOut wieder durchführen.
  • onClick auch ruhig noch mal für den neuen Button das onMouseOver ausführen, da evtl. (bei hoher Mausgeschwindigkeit) schon das onMouseOut gegriffen hat.

Abgesehen von onMouseOver/Out mache ich übrigens das gleiche noch etwas komplexer auf http://cheatah.net/test/. Dort speichere ich auf den einzelnen Seiten und Untermenus, welcher Button nun angeklickt werden soll und führe die entsprechenden Funktionen frameübergreifend aus. Das ist ein wenig kompliziert, dafür funktioniert aber auch die Navigation mit Back- und Forward-Button des Browsers. Leider funktionieren nur die wenigsten Menupunkte, aber die erste Spalte sollte für den Anfang genügen ;-)

Cheatah