Felix Riesterer: CSS / JavaScript: Eigenes Navigationsmenu

Beitrag lesen

Lieber Remo,

<div class="sub-nav-item" id="gallery" onMouseout="javascript:hide('gallery');">

lass das "javascript:" aus dem eventhandler heraus, denn dort hat es nix verloren!  
  

> ~~~javascript
  

>      document.getElementById(id).style.visibility = "visible";  
>      document.getElementById(id).style.display = "block";

Wozu brauchst Du sowohl visibility als auch display? Wenn ich an display herumfummle, dann kann mir doch visibility in der default-Einstellung ("visible") egal sein! Doppelt gemoppelt führt hier eher zu Problemen...

document.getElementById(id).style.visibility = "hidden";
     document.getElementById(id).style.display = "none";[/code]

Siehe oben. Besonders hier ist das mit visibility überflüssig, da display:none alles entfernt (während visibility:hidden eine Platzhalter-Funktion hat).

Dein Problem ist wohl das Event-Bubbling. Wenn Dein Javascript feuert, weil Du den Link verlassen hast, dann kann auch sein, dass das übergeordnete Element zusätzlich feuert, so dass verschiedene Ebenen plötzlich ihre display-Eigenschaft auf "none" setzen.

Wenn Du CSS einsetzt, was hat dann <center><table border="0" cellpadding="0" cellspacing="0" width="800"> in Deinem Quelltext verloren??? Das Gleiche gilt für die Javscript-Umsetzung Deines Menüs. Schau mal in SelfHTML über CSS-Navigation nach. Dort steht, wie Du das _richtig_ machst!

Liebe Grüße aus Ellwangen,

Felix Riesterer.