2016-06-23 8 views
2

Gibt es eine Möglichkeit, mit JS herauszufinden, ob das Umschaltmenü ausgeblendet oder ausgeblendet ist.Wie kann man herausfinden, ob die Schaltfläche "navbar-toggle" mit Javascript verdeckt oder verborgen ist?

Does class = "navbar-Toggle"oder Daten-Toggle = "collapse" haben einen Parameter, der diesen Zustand anzeigt?

Ich weiß, dass die Ereignisse, die aufgerufen werden, wenn die „.collape“ angezeigt oder ausgeblendet wird:

$('.navbar-collapse').on('shown.bs.collapse', function() { //called when dropdown menu is shown });

Darüber hinaus weiß ich die Methoden, die zeigt oder versteckt den Zusammenbruch wie folgt aus:

$('.navbar-collapse').collapse('hide'); 

Ich kann jedoch keine Informationen darüber finden, wie man den aktuellen Status von .collapse erhält, und mir sagt, ob es versteckt oder gezeigt wird.

+2

Willkommen bei SO. Die Antwort ist ja, aber bitte schreiben Sie die SO-Regeln, um zu sehen, wie Sie eine Frage hinzufügen. Es gibt mehrere Probleme mit Ihren Fragen, beginnend mit der Tatsache, dass ein einfacher google über diesen Text die Antwort auf die Tatsache bringen würde, dass Sie eine nicht standardisierte Klasse referenzieren (obwohl Sie wahrscheinlich Bootstrap verwenden). – zozo

Antwort

5

(ich bin die Bearbeitung diese Antwort mit einem besseren Weg.)

Ja, können Sie überprüfen, ob das Element sichtbar ist, jquery $ mit (Elemente) .ist ("Sichtbar")

Hier ist ein live demo on jsFiddle

<nav class="navbar navbar-inverse"> 
    <div class="container-fluid"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="#">WebSiteName</a> 
    </div> 
    <div class="collapse navbar-collapse" id="myNavbar"> 
     <ul class="nav navbar-nav"> 
     <li class="active"><a href="#">Home</a></li> 
     <li class="dropdown"> 
      <a class="dropdown-toggle" data-toggle="dropdown" href="#">Page 1 <span class="caret"></span></a> 
      <ul class="dropdown-menu"> 
      <li><a href="#">Page 1-1</a></li> 
      <li><a href="#">Page 1-2</a></li> 
      <li><a href="#">Page 1-3</a></li> 
      </ul> 
     </li> 
     <li><a href="#">Page 2</a></li> 
     <li><a href="#">Page 3</a></li> 
     </ul> 
     <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li> 
     <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> 
     </ul> 
    </div> 
    </div> 
</nav> 

<div class="container"> 
    <h3>Collapsible Navbar</h3> 
    <p>In this example, the navigation bar is hidden on small screens and replaced by a button in the top right corner (try to re-size this window). 
    <p>Only when the button is clicked, the navigation bar will be displayed.</p> 
</div> 
<input type="button" value="click me" onclick="clickedIt()" /> 

Hier einige Javascript

einige html Hier wird
function clickedIt() { 
    var canSee = $("#myNavbar").is(":visible"); 
    alert(canSee); 
} 
+0

Ich sehe, aber wie genau kann ich den Status der .collapse mit dieser hasClass abrufen? Als ich mich im Internet umsah, war das einzige, was ich fand, die Ereignisse zum Verstecken und Zeigen. –

+1

Verwenden Sie einfach die Eigenschaft, um es zu überprüfen, wann immer Sie wollten. z.B. if ($ ("# selector"). hasClass ("collapsed") – Nikki9696

+1

Nachdem ich an jsFiddle experimentiert habe, habe ich entschieden, dass das nicht der richtige Weg ist. Ich habe die Antwort bearbeitet, um die sichtbaren Eigenschaften zu überprüfen. – Nikki9696

Verwandte Themen