2017-02-14 3 views
0

Ich habe eine vertikale navbar, die zusammenklappbar, wenn in mobilen Geräten angezeigt wird. Ich möchte, dass meine Benutzer die Navigationsleiste auch nach dem Bildlauf weiterhin sehen und nur schließen, indem sie auf ein Element oder auf die Navigationsschaltfläche klicken.Prevent bootstrap collapse navbar von Schließen auf Handy beim Scrollen

Ich habe versucht, die folgenden (aus einem Beitrag auf Stack-Überlauf :)):

$('.sidebar-navbar-collapse').on({ 
    "show.bs.collapse": function() { this.closable = false;console.log('in show nav'); }, 
    "click":   function() { this.closable = true; console.log('in click to hide nav'); }, 
    "hide.bs.collapse": function() { return this.closable;console.log('in hide nav, closable:', this.closable); } 

});

Aber während ich die Ausgabe für die angezeigte & klicken, sehe ich es nicht für das ausblenden Ereignis, wenn es durch Scrollen geschlossen ist.

HTML:

<div class="col-md-4 col-sm-4 sidebar-nav"> 
    <div class="navbar" role="navigation"> 
     <h1 class='hidden-xs' style="border-bottom: 1px solid #ddd;">Topics</h1> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <span class="visible-xs navbar-brand">Topics</span> 
     </div> 
     <div class="navbar-collapse collapse sidebar-navbar-collapse"> 
      <ul class="nav navbar-nav" style="list-style:none; font-size: 16pt !important; font-family: תArial, sans-serif;" lang="HE"> 
      <li> 
       <a href="/faq/1" title="Privacy">Privacy</a> 
      </li> 
      <li> 
       <a href="/faq/2" title="Report">Report</a> 
      </li> 
      </ul>     
      <div class="clear"></div> 
    </div> 
</div> 

Hier ist eine js Geige:

https://jsfiddle.net/bv773t0a/

Thank you!

+0

Erstellen Sie uns eine JSFiddle? –

+0

@GuruTom - Ich habe einen erstellt und der Frage hinzugefügt. Vielen Dank! – hgolov

+1

Sie haben ein Skript in Ihrer main.js, das mit dem Bootstrap-Skript in Konflikt steht. 'jQuery (". collapse.navbar-collapse.in "). removeClass (" in ");' – karan3112

Antwort

0

Recht darauf hingewiesen, von @ Karan3112

Sie haben etwas widerstreit mit Bootstrap Javascript in Ihrem main.js. Versuchen Sie:

jQuery(".collapse.navbar-collapse.in").removeClass("in"); 
+0

Ich wollte das wirklich @ Karan3112 geben, aber da er nicht geantwortet hat, vergebe ich es dir. Vielen Dank! – hgolov

Verwandte Themen