Elenco a discesa Bootstrap JS


Menu a discesa JS (dropdown.js)

Un menu a discesa è un menu attivabile che consente all'utente di scegliere un valore da un elenco predefinito.

Per un tutorial sui Dropdown, leggi il nostro Tutorial sui Dropdown Bootstrap .


Le classi di plugin a discesa

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

Via dati-* Attributi

Aggiungi data-toggle="dropdown"a un collegamento o un pulsante per attivare un menu a discesa.

Esempio

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

Tramite JavaScript

Abilita manualmente con:

Esempio

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

Nota: l'attributo data-toggle="dropdown" è obbligatorio indipendentemente dal fatto che tu chiami il metodo dropdown().



Opzioni a discesa

None

Metodi a discesa

La tabella seguente elenca tutti i metodi a discesa disponibili.

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

Eventi a discesa

La tabella seguente elenca tutti gli eventi a discesa disponibili.

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)

Suggerimento: usa event.relatedTarget di jQuery per ottenere l'elemento che ha attivato il menu a discesa:

Esempio

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

Altri esempi

Cambia l'icona del cursore capovolta

L'esempio seguente cambia l'icona del cursore da puntare verso il basso verso l'alto quando si fa clic sul menu a discesa:

Esempio

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

Barra di navigazione con menu a discesa

L'esempio seguente aggiunge un menu a discesa per un pulsante nella barra di navigazione:

Esempio

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

L'esempio seguente aggiunge un menu a discesa con un modulo di accesso nella barra di navigazione:

Esempio

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

Dropdown multilivello

In questo esempio, utilizziamo jQuery per aprire menu a discesa multilivello al clic:

Esempio

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

In questo esempio, abbiamo creato una .dropdown-submenuclasse personalizzata per i menu a discesa multi-livello:

Esempio

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