Rozwijane menu Bootstrap JS


Menu JS (dropdown.js)

Rozwijane menu to przełączalne menu, które pozwala użytkownikowi wybrać jedną wartość z predefiniowanej listy.

Aby zapoznać się z samouczkiem dotyczącym menu rozwijanych, przeczytaj nasz samouczek dotyczący funkcji Bootstrap Dropdowns .


Klasy wtyczek rozwijanych

Class Description Example
.dropdown Indicates a dropdown menu
.dropdown-menu Builds the dropdown menu
.dropdown-menu-right Right-aligns a dropdown menu
.dropdown-header Adds a header inside the dropdown menu
.dropup Indicates a dropup menu
.disabled Disables an item in the dropdown menu
.divider Separates items inside the dropdown menu with a horizontal line

Przez dane-* Atrybuty

Dodaj data-toggle="dropdown"do linku lub przycisku, aby przełączyć menu rozwijane.

Przykład

<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Example</a>

Przez JavaScript

Włącz ręcznie za pomocą:

Przykład

$('.dropdown-toggle').dropdown();

Uwaga: Atrybut data-toggle="dropdown" jest wymagany niezależnie od tego, czy wywołasz metodę dropdown().



Opcje rozwijane

None

Metody rozwijane

W poniższej tabeli wymieniono wszystkie dostępne metody rozwijane.

Method Description Try it
.dropdown("toggle") Toggles the dropdown

Rozwijane wydarzenia

W poniższej tabeli wymieniono wszystkie dostępne zdarzenia rozwijane.

Event Description Try it
show.bs.dropdown Occurs when the dropdown is about to be shown.
shown.bs.dropdown Occurs when the dropdown is fully shown (after CSS transitions have completed)
hide.bs.dropdown Occurs when the dropdown is about to be hidden
hidden.bs.dropdown Occurs when the dropdown is fully hidden (after CSS transitions have completed)

Wskazówka: użyj event.relatedTarget z jQuery, aby pobrać element, który wywołał listę rozwijaną:

Przykład

$(".dropdown").on("show.bs.dropdown", function(event){
  var x = $(event.relatedTarget).text(); // Get the text of the element
  alert(x);
});

Więcej przykładów

Zmień ikonę karetki na odwróconą

Poniższy przykład zmienia ikonę karetki z skierowanej w dół na górę po kliknięciu listy rozwijanej:

Przykład

/* CSS: */
<style>
.caret.caret-up {
  border-top-width: 0;
  border-bottom: 4px solid #fff;
}
</style>

/* JS: */
<script>
$(document).ready(function(){
  $(".dropdown").on("hide.bs.dropdown", function(){
    $(".btn").html('Dropdown <span class="caret"></span>');
  });
  $(".dropdown").on("show.bs.dropdown", function(){
    $(".btn").html('Dropdown <span class="caret caret-up"></span>');
  });
});
</script>

Pasek nawigacyjny z rozwijanym

Poniższy przykład dodaje menu rozwijane dla przycisku na pasku nawigacyjnym:

Przykład

<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">WebSiteName</a>
    </div>
    <div>
      <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>
    </div>
  </div>
</nav>

Poniższy przykład dodaje menu rozwijane z formularzem logowania na pasku nawigacyjnym:

Przykład

<ul class="nav navbar-nav navbar-right">
  <li class="dropdown">
    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Login <span class="glyphicon glyphicon-log-in"></span></a>
    <div class="dropdown-menu">
      <form id="formlogin" class="form container-fluid">
        <div class="form-group">
          <label for="usr">Name:</label>
          <input type="text" class="form-control" id="usr">
        </div>
        <div class="form-group">
          <label for="pwd">Password:</label>
          <input type="password" class="form-control" id="pwd">
        </div>
          <button type="button" id="btnLogin" class="btn btn-block">Login</button>
      </form>
      <div class="container-fluid">
        <a class="small" href="#">Forgot password?</a>
      </div>
    </div>
  </li>
</ul>

Wielopoziomowe listy rozwijane

W tym przykładzie używamy jQuery do otwierania wielopoziomowych list rozwijanych po kliknięciu:

Przykład

<script>
$(document).ready(function(){
  $('.dropdown-submenu a.test').on("click", function(e){
    $(this).next('ul').toggle();
    e.stopPropagation();
    e.preventDefault();
  });
});
</script>

W tym przykładzie stworzyliśmy niestandardową .dropdown-submenuklasę dla wielopoziomowych list rozwijanych:

Przykład

 /* CSS: */
<style>
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}
</style>

/* JS: */
<script>
$(document).ready(function(){
  $('.dropdown-submenu a.test').on("click", function(e){
    $(this).next('ul').toggle();
    e.stopPropagation();
    e.preventDefault();
  });
});
</script>