Markus: Hauptmenue wie bei opera.com zum Ausklappen

hallo alle zusammen,

ich bin ziemlicher newbee was JS angeht,
aber ich versuche mir gerade ein kleines Pulldown-Menue (sowas wie es opera.com in der Haupt-Navi benutzt) zu bauen.

Im Prinzip kann ich doch ein Div nehmen, und dieses via CSS unsichtbar machen. Fährt der Besucher mit der Maus über einen bestimmten Link,
wird das Div sichtbar gemacht. Geht er wieder weg, macht man es wieder unsichtbar.
Das klappt auch schon ganz gut:
<script type="text/javascript">
<!--
function menue(menuediv,action) {

switch(action) {
       case "show":
            document.getElementById(menuediv).style.visibility='visible';
          break;
         case "hide":
            document.getElementById(menuediv).style.visibility='hidden';
          break;
      }

}
-->
</script>

und dazu der entsprechende Aufruf:
<a href="#" onMouseOver="menue('sub1','show')" onMouseOut="menue('sub1','hide')">Test 1</a>

Soweit so gut.

Aaaaaaaaaber:

Will man nun mit der Maus einen _in dem Div_ befindlichen Link anklicken, verschwindet das Div in dem Moment in dem ich mit der Maus von dem Link verschwinde (logisch, onMouseOut macht ja auch das Div wieder unsichtbar).
Wie stelle ich das an, daß das Div solange sichtbar bleibt wie ich mit der Maus darüber bin?!? Auf eine möglichst saubere, einfache und elegenante Methode?

Vielen Dank für eure Hilfe,
Grüße,
Markus

  1. hi!

    Ganz einfach:

    Da gibt es einen Befehl, der heißt: window.setTimeout("Anweisung()","Wert im ms");

    Dann wird dein div erst kurze Zeit später ausgeblendet...

    1. Hi,

      Da gibt es einen Befehl, der heißt: window.setTimeout("Anweisung()","Wert im ms");

      keine schlechte Idee eigentlich.
      aber irgendwas mach ich falsch, es klappt leider nicht:

      case "hide":
                  window.setTimeout(
                      document.getElementById(menuediv).style.visibility='hidden',10000
                    )
                break;

      habs auch shcon mit anführungzeichen versucht, aber das brings irgendwie so gar nicht?

      Hast du eine Idee, was da lost ist?

  2. Hej,

    Will man nun mit der Maus einen _in dem Div_ befindlichen Link anklicken, verschwindet das Div in dem Moment in dem ich mit der Maus von dem Link verschwinde (logisch, onMouseOut macht ja auch das Div wieder unsichtbar).
    Wie stelle ich das an, daß das Div solange sichtbar bleibt wie ich mit der Maus darüber bin?!? Auf eine möglichst saubere, einfache und elegenante Methode?

    Sobald du eine Navigation per JavaScript zugänglich machst verlässt du den Lebensraum der Eleganz.

    <div id="menu" onMouseOver="setze subMenu.visibility auf block" onMouseOut="mache rückgangig">
      <a>menu</a>
      <div id="subMenu" style="visibility:none;">
        <a>subMenu1</a>
        <a>subMenu2</a>
        <a>subMenu3</a>
      </div>
    </div>

    So würde ich mein Menü aufbauen. Damit verlässt du solange nicht den Wirkungsbereich von onMouseOver solange du dich im Menü zurecht suchst.

    Beste Grüße
    Biesterfeld

    --
    Selfcode:
    fo:| br:> n4:? ie:{ mo:} va:} de:] zu:| fl:| ss:| ls:]