Fermer la barre de navigation réactive automatiquement
Je suis à l'aide d'un Bootstrap responsive barre de navigation. Lorsque la barre de navigation est effondré et j'ai ouvrez le menu et cliquez sur un élément de menu, le menu ne se ferme pas automatiquement, et je dois le faire moi-même manuellement.
Est-il possible de faire le menu se ferme automatiquement après avoir cliqué sur l'un des boutons?
- Sachez que tous les ci-dessous les réponses depuis ce commentaire date sera également vous empêcher de vous de cliquer sur un menu déroulant dans le menu lui-même.
- Mais l'Aug-Sep réponses avec
a:not(.dropdown-toggle)
ne vous permettent de cliquer sur un menu déroulant. Mais aussi être conscient que presque toutes ces réponses donner une FOUC lorsqu'ils sont visualisés sur un ordinateur de bureau, ou faire un menu visible redessiner. Un rapide hack pour résoudre ce problème est de sélectionner sur la taille de la fenêtre:if($(window).width() < 480) $(".navbar-collapse").collapse('hide');
- Je souhaite que ce fut à condition que le comportement par défaut par twitter bootstrap
Vous devez vous connecter pour publier un commentaire.
Edit:
Comme Maximus points ci-après, le 3.x bootstrap solution est:
https://jsfiddle.net/yohuLuj2/
Vieille Réponse pour 2.x bootstrap:
Vous devriez être en mesure de le faire par l'ajout d'un gestionnaire de clic sur les éléments de la liste et la fermeture de la valeur liquidative de cette façon.
Heres un jsfiddle:
http://jsfiddle.net/hajpoj/By6ym/4/
.navbar-collapse
?Solution de travail pour bootstrap 3
Je viens de reproduire le 2 attributs de la btn-navbar (data-toggle="collapse" data-target=".nav-effondrement") sur chaque lien comme ceci:
.in
à la fin de ladata-target
valeur:data-target=".navbar-collapse.in"
. De commentaire dans cette réponse: stackoverflow.com/a/21797534/89818Seule chose que je voudrais ajouter à jason solution est l'exception pour les listes déroulantes. Vous ne voulez pas fermer votre menu si quelqu'un est tout simplement en cliquant sur pour basculer le sous-menu. Alors...
@Mike déroulant solution a fonctionné pour moi, sauf que les éléments dans la liste déroulante de la bascule ne pas masquer le menu j'ai donc fait en sorte d'ajouter ceci:
N'oubliez pas de parcourir l'arborescence du DOM et de fermer les associés barre de navigation, et pas tous les Navbars. En particulier pour Bootstrap 3, utiliser quelque chose de similaire à l'extrait de code suivant:
Un autre problème, c'est quand vous voyez la barre de navigation sur le bureau, il essaie de masquer/afficher la barre de navigation, j'ai donc fait ceci:
$(window.width()
) empêche un méchant FOUC vu sur un site de bureau, donc +1.Je complète les réponses en ajoutant le bouton cliquez sur gestion:
Mon problème, je n'avais création unique de mise en page avec des ancres. Ainsi, lorsque vous réduire la taille de la fenêtre, le menu masquer sur le lien cliquez sur parfaitement. Grâce à l'utilisateur ci-dessus qui m'a donné l'idée. Mais, lors de la migration de la fenêtre, le lien de l'événement toujours là (sans rechargement, tout de même). Donc, voici ce que j'ai fait. Espérons que cela aide quelqu'un 🙂
Si vous utilisez Angulaire, vous pouvez lier l'effondrement de la route de navigation:
Suffit de mettre ce code dans main.js
Peut-être besoin de quelqu'un pour cacher menu lorsque vous cliquez à un autre endroit (j'ai supposé comme il n'y a pas de sous-menus). Ensuite, il suffit d'ajouter ce code quelque part après jquery, bootstrap.js