2013-03-05 2 views
4

J'ai simple accordéon jQuery qui fonctionne ... presque parfaitement :)question simple avec jQuery Accordéon

Comme vous pouvez le voir sur la démo, j'ai actuellement la navigation « ouverte » comme je suis la page "Team".

Est-ce possible quand je clique sur "À propos de nous", il ferme complètement l'élément. Comme vous pouvez le voir à partir de la démo, il le ferme, mais puis le rouvre rapidement. Je suppose que cela se produit en raison du code sur ligne 27 de mon CSS.

Voici ma démo : http://jsfiddle.net/URYzK/5/

Voici mon JavaScript:

jQuery(function($) { 

    $('#accordion > li > a').click(function (e) { 
     if ($(this).next('ul').length == 0) { 
      // link is for navigation, do not set up accordion here 
      return; 
     } 

     // link is for accordion pane 

     //remove all the "Over" class, so that the arrow reset to default 
     $('#accordion > li > a').not(this).each(function() { 
      if ($(this).attr('rel')!='') { 
       $(this).removeClass($(this).attr('rel') + 'Over'); 
      } 

      $(this).siblings('ul').slideUp("slow"); 
     }); 

     //showhide the selected submenu 
     $(this).siblings('ul').slideToggle("slow"); 

     //addremove Over class, so that the arrow pointing downup 
     $(this).toggleClass($(this).attr('rel') + 'Over'); 
     e.preventDefault(); 
    }); 

}); 

Un grand merci pour toute l'aide ici.

Répondre

0

Supprimer display:none de #accordian ul et supprimer complètement le CSS .children. Je crois que cela crée le comportement que vous voulez. Vous définissiez les enfants ul comme étant display:none, puis essayiez de forcer .children, qui est ul, d'être display:block plus tard, c'est pourquoi ils se battaient.

Vous avez également mis à jour votre jsFiddle.

+0

Cool - va donner un tourbillon tout à l'heure - merci pour la réponse :) – michaelmcgurk

+0

Wow. C'était simple :-) Merci beaucoup !! – michaelmcgurk

+1

Ne me remerciez pas, merci la coche;) – PlantTheIdea