Bootstrap JS rozevírací seznam


Rozbalovací seznam JS (dropdown.js)

Rozbalovací nabídka je přepínatelná nabídka, která umožňuje uživateli vybrat jednu hodnotu z předdefinovaného seznamu.

Chcete-li získat výukový program o rozevíracích seznamech, přečtěte si náš výukový program pro rozevírací seznamy Bootstrap .


Třídy rozbalovacích pluginů

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

Přes data-* Atributy

Přidat data-toggle="dropdown"k odkazu nebo tlačítku pro přepínání rozbalovací nabídky.

Příklad

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

Prostřednictvím JavaScriptu

Povolit ručně pomocí:

Příklad

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

Poznámka: Atribut data-toggle="dropdown" je povinný bez ohledu na to, zda voláte metodu dropdown().



Rozbalovací možnosti

None

Rozbalovací metody

V následující tabulce jsou uvedeny všechny dostupné rozevírací metody.

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

Rozbalovací události

V následující tabulce jsou uvedeny všechny dostupné rozevírací události.

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)

Tip: Použijte event.relatedTarget jQuery k získání prvku, který spustil rozbalovací nabídku:

Příklad

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

Další příklady

Změňte ikonu stříšky na obrácenou

Následující příklad změní ikonu stříšky z ukazování dolů na nahoru při kliknutí na rozevírací nabídku:

Příklad

/* 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>

Navbar s rozevíracím seznamem

Následující příklad přidá rozbalovací nabídku pro tlačítko na navigační liště:

Příklad

<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>

Následující příklad přidá rozbalovací nabídku s přihlašovacím formulářem na navigační liště:

Příklad

<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>

Víceúrovňové rozbalovací nabídky

V tomto příkladu používáme jQuery k otevření víceúrovňových rozevíracích seznamů po kliknutí:

Příklad

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

V tomto příkladu jsme vytvořili vlastní .dropdown-submenutřídu pro víceúrovňové rozevírací seznamy:

Příklad

 /* 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>