2010-08-19 16 views
0

Le ci-dessous fonctionne bien. Cependant, j'ai 2 sous-menus - si je survole l'un ou l'autre de leurs enfants "ul.menu_body" fondu.jquery cette confusion

probablement je dois utiliser "this" quelque part, de sorte que le fondu s'applique uniquement au menu désiré.

J'ai essayé d'ajouter $ ("ul.menu_body", this) .fadeIn ('rapide') mais il cesse de fonctionner tout à fait - pas l'esprit d'erreurs (que je peux voir)

des idées? Je vous remercie.

$(document).ready(function(){ 

      $("ul.menu_body li:even").addClass("alt"); 
      $("li a.menu_head").hover(function() { 
       $("ul.menu_body").fadeIn('fast') 
      }); 
      $(".subMenuParent").mouseleave(function(){ 
       $("ul.menu_body").fadeOut(); 
       $("li.subMenuParent").removeClass("active"); 

      }); 
// rest of my script 

à préciser - le code ci-dessous signifie que chaque instance de "ul.menu_body" disparaît progressivement lorsque "li a.menu_head" est plané.

Je veux juste que le sous-menu correspondant soit affiché, pas tous.

Répondre

2

Vous étiez proche, mais le vol stationnaire se produit sur l'élément d'ancrage (qui devient this) et non l'élément li. Je suppose que le ul n'est pas un enfant de l'ancre, mais du li. Essayez d'utiliser:

$('ul.menu_body',$(this).closest('li')).fadeIn('fast'); 

ou

$(this).closest('li').find('ul.menu_body').fadeIn('fast'); 
+0

ah, ce sens. merci, fonctionne un régal. – Ross