Bootstrap 3 menu réduit ne pas fermer sur le clic
J'ai plus ou moins standard de navigation à partir de bootstrap 3
<body data-spy="scroll" data-target=".navbar-collapse">
<!-- ---------- Navigation ---------- -->
<div class="navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
</button>
<a class="navbar-brand" href="index.html"> <img src="#"></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#home">Home</a></li>
<li><a href="#one">One</a></li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a></li>
<li><a href="#four">Four</a></li>
</ul>
</div>
</div>
</div>
Il s'effondre normalement sur des appareils plus petits. En cliquant sur le bouton de menu élargit le menu, mais si je clique sur (ou de toucher d'ailleurs) sur un lien du menu, le menu reste ouvert. Que dois-je faire, pour la fermer de nouveau?
- la réponse de user3669917 est certainement le plus simple et le plus direct réponse!
- Double Possible de Masquer Twitter Bootstrap nav effondrement cliquez sur
InformationsquelleAutor Paranoia | 2014-01-18
Vous devez vous connecter pour publier un commentaire.
Bootstrap est le réglage par défaut est de garder le menu s'ouvre lorsque vous cliquez sur un élément de menu. Vous pouvez modifier ce comportement en appelant
.collapse('hide');
sur le jQuery élément que vous souhaitez réduire.Juste pour partager ce à partir de solutions sur GitHub, c'était la réponse:
https://github.com/twbs/bootstrap/issues/9013#issuecomment-39698247
C'est câblé pour le document, de sorte que vous n'avez pas à le faire sur prêts() (vous pouvez ajouter dynamiquement des liens vers votre menu et il fonctionnera toujours), et c'est appelé si le menu est déjà développée. Certaines personnes ont signalé bizarre de clignoter lorsque le menu s'ouvre, puis se ferme immédiatement avec un autre code qui n'a pas vérifié que le menu a la classe "in".
[Mise à JOUR 2014-11-04] apparemment, lors de l'utilisation de sous-menus, le ci-dessus peut causer des problèmes, de sorte que le ci-dessus a modifié à:
collapse
est une méthode définie par bootstrap et attaché à l'objet jQuery...sans doute, ils se sont re-utiliser pour des fins multiples (accordéon, barre de navigation, etc): getbootstrap.com/javascript/#collapse-usageChanger cela:
à ceci:
Ce simple changement a fonctionné pour moi.
Ref: https://github.com/twbs/bootstrap/issues/9013
.in
à la fin de ladata-target
valeur:data-target=".navbar-collapse.in"
. De commentaire dans cette réponse: stackoverflow.com/a/21797534/89818<NavLink to="/path"></NavLink>
ça ne marchera pas , c'est juste l'effondrement de la bascule , oui il travail avec<a>
de balises, mais pas<NavLink>
aucune idée , comment le résoudre ?J'ai eu le même problème, mais provoquée par l', y compris deux fois
bootstrap.js
etjquery.js
fichiers.Sur un seul cliquez sur l'événement a été traité à deux reprises par jquery instances. Une fermée et une ouverte à la bascule.
Ce serait aider dans la manipulation de liste déroulante dans la barre de navigation
Je vais avoir/ont eu des problèmes similaires avec Bootstrap 4, alpha-6, et Joakim Johanssonréponse de s au-dessus de moi a commencé dans la bonne direction. Pas de javascript requis. Mettre data-target=".navbar-effondrement" et data-toggle="collapse" dans la balise div à l'intérieur de la nav, mais environnant les liens/boutons, travaillé pour moi.
HTML:
Je sais que cette question est pour Bootstrap 3 mais si vous êtes à la recherche de solution pour Bootstrap 4, il suffit de faire ceci:
$(".navbar-nav li a:not('.dropdown-toggle')") .on('click', function () { $('.navbar-collapse').collapse('hide'); }
J'ai eu le même problème, j'ai été en utilisant
jQuery-1.7.1
etbootstrap 3.2.0
.J'ai changé ma version jQuery pour la dernière (
jquery-1.11.2
) version et tout fonctionne bien.Je n'ai
Si la solution posté plus tôt pour changer l'élément de menu lui-même, comme ci-dessous, fonctionne lorsque le menu est sur un petit appareil, il a un autre effet quand le menu est sur toute la largeur et élargi, ce qui peut entraîner une barre de défilement horizontale glissant sur les éléments de menu. Le javascript solutions n'ont pas cet effet secondaire.
(désolé de répondre comme cela voulait ajouter un commentaire à cette réponse, mais, me semble que je n'ai pas suffisamment de crédit pour faire des remarques )
Dans le cas où vous souhaitez modifier ce comportement en l'appelant .effondrement('hide') à l'intérieur d'un angulaire de la directive, voici le code:
fichier javascript:
Html:
Si vous ne voulez que votre navigation pour basculer lorsqu'il est utilisé sur un écran de mobile, tout en ajoutant
data-toggle="collapse"
etdata-target="#navbar"
à vos éléments de travail sur l'écran, mais vous donnera un étrange scintillement lors d'un clic sur un écran de bureau. Le jQuery solutions ne fonctionnent pas bien si vous êtes dans un Aurelia ou Angulaires de l'environnement.La meilleure solution pour moi était de créer un attribut personnalisé à l'écoute de la correspondante de la requête de média et les ajoute dans la
data-toggle="collapse"
attribut si vous le souhaitez:<a href="#" ... collapse-toggle-if-less768 data-target="#navbar"> ...
L'attribut personnalisé avec Aurelia ressemble à ceci:
JS:
J'ai trouvé que, après beaucoup de luttes, d'essai et d'erreur, la meilleure solution pour moi sur jsfiddle. Lien pour l'inspiration jsfiddle.net. Je suis en utilisant bootstrap de la navbar navbar-fixed-top avec l'effondrement et le hamburger de la bascule. Voici ma version sur jsfiddle: jsfiddle Scrollspy barre de navigation. J'étais seulement à l'obtention de la fonctionnalité de base à l'aide des instructions sur getbootsrap.com. Pour moi, le problème était surtout dans le vague les directions et js recommandé par le getbootstrap site. La meilleure partie est que l'ajout de ce bit supplémentaire de js (qui inclut certains de ce qui est mentionné dans le ci-dessus threads) résolu plusieurs Scrollspy questions pour m'y compris:
REMARQUE: Dans le code js ci-dessous (à partir de la deuxième jsfiddle lien dans mon post):
topMenu = $("#myScrollspy"),
...la valeur "myScrollspy" doit correspondre à l'id="" dans le HTML, comme si...
Bien sûr, vous pouvez modifier cette valeur à la valeur que vous souhaitez.
Tous vous avez besoin est data-target=".navbar-effondrement" dans le bouton, rien d'autre.
<a/>
mais il ne fonctionne pas avec<NavLink/>
, il s'effondre, mais ,<NavLink/>
n'est pas de travailler plus , des idées pourquoi ?Veuillez assurez-vous que Vous êtes en utilisant les dernières bootstrap js version. J'ai été confrontée au même problème et juste la mise à niveau de la bootstrap.js fichier de bootstrap-3.3.6 ne la magie.
C'est le code qui a fonctionné pour moi:
J'ai eu le même problème, assurez-vous que bootstrap.js est inclus dans votre page html. Dans mon cas, le menu ouvert, mais n'a pas fermé. Dès que j'ai inclus le fichier de bootstrap fichier js, tout simplement travaillé.
Simple d'Essayer de faire une fonction en javascript pour déroulante effondrement de la classe.
Exemple:
JS:
Crochet cette fonction pour
onClick
simple qui fonctionne pour moi.J'ai eu le même problème mais le mien ne voulait pas rester ouvert il allait ouvrir/fermer rapidement, j'ai trouvé que j'avais jquery-1.11.1.min.js chargement avant bootstrap.min.js. Donc j'ai inversé l'ordre de ces 2 fichiers et fixe mon menu. Fonctionne parfaitement maintenant. Espérons que cela aide
Le problème pourrait être que vous utilisez une des versions les plus récentes de bootstrap, jquery, OU vous appeler plus d'une version dans votre balisage.
Il suffit de garder les versions les plus récentes, vous avez seulement besoin de la personne de référence. Résout le problème.
vous pouvez juste vous assurer que vous êtes en train de charger votre jQuery et Bootstrap.min.js ATF. Votre navigation est la première chose à rendre sur la page, donc si vous avez vos scripts en bas de votre code HTML, vous perdez le code JavaScript de la fonctionnalité.
J'ai eu le même problème que sur mobile, mais pour l'Angulaire de l'application et c'est ce que j'ai fait:
app.component.html
app.composante.ts
Espère que cela aide 🙂
Mon menu n'est pas une barre de navigation standard, mais j'ai réussi à auto effondrement de la mine, à l'aide d'un "onclick" fonction ".cliquez sur()".