sprinter: PullDown-Menü jQuery

Steh grad irgendwie auf dem Schlauch.

Ich möchte ein PullDown-Menü erzeugen.

  
<ul id="menu">  
 <li><a href="#" class="elem">Element</a>  
   <ul style="display:none">  
     <li><a href="#">Sub Element</a></li>  
     <li><a href="#">Sub Element</a></li>  
   </ul>  
 </li>  
 ... #weitere Elemente  
</ul>  

Wenn man mit der Maus über ein Element fährt soll die nachfolgende Liste aufgeklappt werden.

  
$('.elem').hover(  
  function () {  
     $('ul',this.parentNode).show();  
  }, function () {  
     $('ul',this.parentNode).hide();  
  }  
);  

Das Problem ist nun folgendes:
Das ganze funktioniert zwar wenn ich mit der Maus über .elem fahre, aber sobald ich mit der Maus in das Pull Down also über ein Sub Element will, geht das teil wieder weg.
Ist ja auch logisch.
Gibts da irgendwie einen trick?

  1. Hi,

    Ich möchte ein PullDown-Menü erzeugen.

    warum schmeisst Du dazu jQuery an? Dafür reicht Css, wie Dir dieses Testmenü zeigt. Lediglich für ie6 brauchts etwas js Unterstützung.

    $('ul',this.parentNode).show();
         $('ul',this.parentNode).hide();
    Gibts da irgendwie einen trick?

    ja. Einen vernünftigen Selector, keinen der global alle uls oder die Elternelemente des gehoverten Elementes versteckt:
    Selectors/multiple - Finds the elements that match any of these [...] selectors.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Wo bitte ist der Selektor global? Er matcht genau dasjenige ul welches ich haben will, welches sich also im <li> befindet wohin wir mit this.parentNode gelangen.
      Du weisst doch garnicht, ob ich jQuery nur deswegen nutze?
      Da ich es ohnehin verwende wäre es ja quatsch bei anderen Dingen darauf zu verzichten. Man muss ja nicht das Rad gleich neu erfinden und unnötig viel Code erzeugen.

      1. Hi,

        Er matcht genau dasjenige ul welches ich haben will, welches sich also im <li> befindet wohin wir mit this.parentNode gelangen.

        Ein bisschen weniger jquery, dafür aber mehr js-Basiswissen täte gut: this.parentNode ist die übergeordnete ul und damit matcht Dein Selector _alle_ uls innerhalb von ul.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.