2010-09-20 8 views
0

I ont un ensemble imbriqué de listes à puces que j'utilise une structure de menu déroulant:Au cours de jQuery Animation, niveau supérieur élément UL disparait

UL> LI> DIV> UL> LI * n> A

J'utilise jQuery pour animer le menu déroulant/affichage de la div et de l'enfant ul:

jQuery('ul.top-ul li.top-li').hover(function() { 
      jQuery(this).animate({height:"150px"},200); 
      jQuery(this).find('div').animate({height:"150px"},4000, function() { 
       jQuery('ul.top-ul li.top-li div p').fadeIn('fast'); 
      }); 
     }, function() { 
      jQuery('ul.top-ul li.top-li div p').fadeOut('fast'); 
      jQuery(this).animate({height:"22px"},200); 
      jQuery(this).find('div').animate({height:"0px"},200); 
     }) 

Lorsque cette animation fonctionne, cependant, l'UL directement sous la div disparaît jusqu'à ce que l'animation a suivi son cours.

C'est visible à http://acldev.com/rsac/index.php (je l'ai ralenti l'animation en bas juste pour souligner le point.

Qu'est-ce qui cause UL disparaître? Quand j'arrête animant la DIV, l'UL ne disparaît pas.

+0

Je suis confronté au même problème. Comment l'avez-vous réparé? – zsquare

+0

Je n'ai pas fini par le réparer. Le client a décidé de faire un menu déroulant standard. J'aimerais revoir cela encore. Il est basé sur le menu déroulant CSS3. –

+0

J'ai le même problème, mais je ne l'utilise pas dans un menu – zsquare

Répondre

0

votre menu est dissapearing à cause de ce sélecteur jQuery(this).find('div').animate... dans votre troisième ligne.

Essayez d'utiliser quelque chose comme jQuery(this).find('.maincats ul').animate... pour faire explicitement apparaître et disparaître les listes imbriquées.

J'espère que ça aide.