Bootstrap JS suspenso


Lista suspensa JS (dropdown.js)

Um menu suspenso é um menu alternável que permite ao usuário escolher um valor de uma lista predefinida.

Para um tutorial sobre Dropdowns, leia nosso Tutorial Bootstrap Dropdowns .


As classes de plugins suspensos

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 dados-* Atributos

Adicione data-toggle="dropdown"a um link ou botão para alternar um menu suspenso.

Exemplo

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

Por JavaScript

Ative manualmente com:

Exemplo

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

Observação: o atributo data-toggle="dropdown" é necessário independentemente de você chamar o método dropdown().



Opções suspensas

None

Métodos suspensos

A tabela a seguir lista todos os métodos suspensos disponíveis.

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

Eventos suspensos

A tabela a seguir lista todos os eventos suspensos disponíveis.

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)

Dica: Use event.relatedTarget do jQuery para obter o elemento que acionou o menu suspenso:

Exemplo

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

Mais exemplos

Altere o ícone de acento circunflexo para de cabeça para baixo

O exemplo a seguir altera o ícone de cursor apontando para baixo para cima ao clicar no menu suspenso:

Exemplo

/* 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 de navegação com menu suspenso

O exemplo a seguir adiciona um menu suspenso para um botão na barra de navegação:

Exemplo

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

O exemplo a seguir adiciona um menu suspenso com um formulário de login na barra de navegação:

Exemplo

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

Listas suspensas de vários níveis

Neste exemplo, usamos jQuery para abrir menus suspensos de vários níveis ao clicar:

Exemplo

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

Neste exemplo, criamos uma .dropdown-submenuclasse personalizada para listas suspensas de vários níveis:

Exemplo

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