Probleme mit OnMouseOut
Dennis
- javascript
Hallo!
Ich habe ein Menu für die Navigation programmiert, dabei wird mit hilfe von JavaScript die Untermenüs eingeblendet (ist ein <div> Blockelement) und soll wieder ausgeblendet werden sobald der Mauszeiger das Objekt verlässt (OnMouseOut). Es wird aber schon ausgeblendet sobald der Mauszeiger auf den ersten Link in diesem Blockelement kommt. Die Problemstellung online: http://www.soltau.tv/test/navigation.html
Vielen Dank für Eure Hilfe
Dennis
Moin!
Ich habe ein Menu für die Navigation programmiert, dabei wird mit hilfe von JavaScript die Untermenüs eingeblendet (ist ein <div> Blockelement) und soll wieder ausgeblendet werden sobald der Mauszeiger das Objekt verlässt (OnMouseOut). Es wird aber schon ausgeblendet sobald der Mauszeiger auf den ersten Link in diesem Blockelement kommt. Die Problemstellung online: http://www.soltau.tv/test/navigation.html
Bei mir klappt da gar nichts.
Aber mal ernsthaft: Das ist bei deinem Code auch nicht zu erwarten.
onmouseover='javascript=this.className="miho";show("gallerie")'
onmouseout='javascript=this.className="mi"'
Bitte merken: Die Angabe "javascript:" hat in Eventhandlern nichts zu suchen, das _ist_ bereits Javascript. Und dank deiner fehlerhaften Programmierung mit dem Gleichkeitszeichen wird jetzt immer eine Variable "javascript" belegt.
- Sven Rautenberg
Moin!
Okay, das mit dem "javascript" im EventHandler hab ich jetzt behoben. Hab ich dann wohl falsch programmiert, ändert aber nichts an der Tatsache das der OnMouseOver nicht funktioniert! Weiss vielleicht jemand eine Lösung dafür?
MfG
Dennis
Moin!
Moin!
Okay, das mit dem "javascript" im EventHandler hab ich jetzt behoben. Hab ich dann wohl falsch programmiert, ändert aber nichts an der Tatsache das der OnMouseOver nicht funktioniert! Weiss vielleicht jemand eine Lösung dafür?
Es kann nur daran liegen, dass das onmouseout-Event aufgerufen wird, wenn du von einem Link zu einem anderen Link fährst.
Der Grund dürfte sein, dass alle enthaltenen Elemente des <div> die Eventhandler erben. Also hast du im Prinzip auch jedem <p> innerhalb des <div> das onmouseout zugeordnet. Und jedem Link darin auch! Also wird das Menü versteckt, wenn du den ersten Link verläßt. Oder den zweiten oder den dritten Link. Denn du hast ja keinen Code eingebaut, der das Menü wieder anzeigt, wenn du in einen der anderen Bereiche mit der Maus "eindringst".
Vielleicht solltest du dir mal http://www.ivg.de/de/content.html genauer angucken - da habe ich mich mit solchen Dingen rumgeplagt, bis letztendlich ein recht brauchbares Ausklappmenü herausgekommen ist. Die Verzögerung des Ausblendens ist übrigens absichtlich - ansonsten würde das Untermenü sehr unruhig sein und viel zu häufig aus Versehen (oder weil der Browser irgendwelche Löcher zwischen den Links findet) wieder verschwinden.
Beachte, dass die onmouse-Events nur einmal pro Menü definiert werden. Das Menü bleibt stehen, weil es erst nach 150 Millisekunden _vielleicht_ ausgeblendet wird. Javascript merkt sich in der Funktion showlayer, welcher Layername eingeblendet werden soll - und hidelayer startet nur ein Timeout für den auszublendenden Layer. Wenn der abgelaufen ist, wird geprüft, ob der zu versteckende Layer nicht derzeit gerade angezeigt werden soll - und nur wenn anzuzeigender Layer und zu versteckender Layer unterschiedlich sind, wird der Layer wirklich versteckt.
- Sven Rautenberg
Moin!
Dankeschön!
Dennis