2016-12-20 5 views
0

J'ai le javascript suivant que j'utilise pour un menu mobile qui fonctionne bien mais lorsqu'un élément de sous-menu qui a un autre sous-menu est cliqué il ne ferme pas seulement ce sous-menu mais il ferme aussi le sous-menu parent. J'espère que cela a du sens. Des idées sur la façon de l'obtenir pour fermer ce sous-menu et pas le sous-menu parent?Wordpress en cliquant sur le sous-menu ferme le sous-menu actuel

jQuery('.mobile-menu .sub-menu').hide(); 
jQuery(document).ready(function() { 
jQuery('.mobile-menu .sub-menu').parent().find('a:first').removeAttr('href').css('cursor','default'); 

if (jQuery('.mobile-menu .menu-item-has-children').length > 0) { 
    jQuery('.mobile-menu .menu-item-has-children').click(
    function (event) { 
     jQuery(this).addClass('toggled') 
     if (jQuery(this).hasClass('toggled')) { 
      jQuery(this).children('ul').toggle(); 
     } 
    }); 
} 
}); 

Répondre

1

Je pense à la recherche d'ici est que vous avez besoin event.stopPropagation() comme dans:

jQuery('.mobile-menu .sub-menu').hide(); 
jQuery(document).ready(function() { 
jQuery('.mobile-menu .sub-menu').parent().find('a:first').removeAttr('href').css('cursor','default'); 

if (jQuery('.mobile-menu .menu-item-has-children').length > 0) { 
    jQuery('.mobile-menu .menu-item-has-children').click(
    function (event) { 
     event.stopPropagation(); 
     jQuery(this).addClass('toggled') 
     if (jQuery(this).hasClass('toggled')) { 
      jQuery(this).children('ul').toggle(); 
     } 
    }); 
} 
}); 

* Mise à jour * Je pense qu'il est l'un de ces jours pour moi. Après avoir répondu à cela (et merci pour les points, btw), je me rappelle que certaines recommandations empêchaient la propagation mais que vous deviez faire attention quand vous l'utilisiez. Il m'a fallu un peu de Google-fu pour ressusciter quel était le problème. Il est assez bien indiqué dans this article, mais le TL; DR est que cela peut avoir des effets secondaires inattendus. This entry at jQuery Fundamentals a d'autres idées. Si cela fonctionne pour vous, fantastique, mais vous pourriez vouloir mettre cela dans votre esprit juste au cas où.

+0

Parfait !! Je vous remercie :) –