Ce que j'essaie de réaliser d'abord, c'est de tester si un «ul» est imbriqué dans «li» et, si c'est le cas, d'afficher le «ul» imbriqué lors du clic. cela fonctionne bien; TOUTEFOIS, l'instruction if renvoie true pour chaque "li" et pas seulement pour ceux qui ont un enfant "ul". cela signifie que les liens sans sous-menus ne fonctionnent pas, puisque e.preventDefault() est invoqué.jQuery ciblant la liste imbriquée
Merci pour votre aide!
$('.main_nav').on('click', 'a', function(e) {
\t \t if($(this).parent().has('ul')) {
\t \t \t e.preventDefault();
\t \t \t $(this).parent().children('ul').toggle(800, 'easeOutQuint', function() {
\t \t \t \t $(this).closest('li').toggleClass('open dropdown');
\t \t }).closest('li').siblings('.open').toggleClass('open dropdown').children('ul').hide('fast');
\t \t }
\t });
<nav class="main_nav" role="navigation" aria-label="Primary Menu">
<ul id="menu-main" class="menu"><li id="menu-item-7" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4 current_page_item menu-item-7"><a href="http://projectbiketech.dev/">Home</a></li>
<li id="menu-item-22" class="dropdown menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-22"><a href="http://projectbiketech.dev/about/">About</a>
<ul class="sub-menu">
\t <li id="menu-item-61" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-61"><a href="http://projectbiketech.dev/about/team/">Team</a></li>
\t <li id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60"><a href="http://projectbiketech.dev/about/board-of-directors/">Board of Directors</a></li>
\t <li id="menu-item-59" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59"><a href="http://projectbiketech.dev/about/advisory-board/">Advisory Board</a></li>
\t <li id="menu-item-58" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58"><a href="http://projectbiketech.dev/about/friends-of-pbt/">Friends of PBT</a></li>
</ul>
</li>
<li id="menu-item-25" class="dropdown menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-25"><a href="http://projectbiketech.dev/programs/">Programs</a>
<ul class="sub-menu">
\t <li id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65"><a href="http://projectbiketech.dev/programs/bike-tech-in-school/">Bike Tech In School</a></li>
</ul>
</li>
<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28"><a href="http://projectbiketech.dev/chapters/">Chapters</a></li>
<li id="menu-item-31" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31"><a href="http://projectbiketech.dev/media/">Media</a></li>
<li id="menu-item-34" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34"><a href="http://projectbiketech.dev/support/">Support</a></li>
<li id="menu-item-37" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37"><a href="http://projectbiketech.dev/contact/">Contact</a></li>
</ul> </nav><!-- .main_navigation -->
Vous utilisez incorrectement [jQuery has selector] (https://api.jquery.com/has/). Vous voulez vérifier si le parent contient une UL imbriquée? Vous devrez expliquer le comportement que vous voulez atteindre: une fois que vous avez cliqué sur le sous-menu, que se passe-t-il si vous cliquez sur d'autres liens ou sur le même lien? Vous mélangez également des scripts et des styles, en ajoutant des styles, mais en cachant des éléments ... pensez que vous avez mal commencé en général. – skobaljic
Copie possible de [jQuery si has() selector faire des trucs] (http://stackoverflow.com/questions/16277484/jquery-if-has-selector-do-stuff) –