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.