부트스트랩 JS 드롭다운


JS 드롭다운(dropdown.js)

드롭다운 메뉴는 사용자가 미리 정의된 목록에서 하나의 값을 선택할 수 있는 토글 가능한 메뉴입니다.

드롭다운에 대한 튜토리얼은 부트스트랩 드롭다운 튜토리얼 을 읽어보세요 .


드롭다운 플러그인 클래스

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

데이터-* 속성을 통해

링크 또는 버튼에 추가 data-toggle="dropdown"하여 드롭다운 메뉴를 전환합니다.

예시

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

자바스크립트를 통해

다음을 사용하여 수동으로 활성화:

예시

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

참고: data-toggle="dropdown" 속성은 dropdown() 메서드를 호출하는지 여부에 관계없이 필요합니다.



드롭다운 옵션

None

드롭다운 방법

다음 표에는 사용 가능한 모든 드롭다운 방법이 나열되어 있습니다.

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

드롭다운 이벤트

다음 표에는 사용 가능한 모든 드롭다운 이벤트가 나열되어 있습니다.

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)

팁: jQuery의 event.relatedTarget 을 사용하여 드롭다운을 트리거한 요소를 가져옵니다.

예시

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

더 많은 예

캐럿 아이콘을 거꾸로 변경

다음 예에서는 드롭다운을 클릭할 때 캐럿 아이콘을 아래쪽에서 위쪽으로 변경합니다.

예시

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

드롭다운이 있는 탐색 모음

다음 예에서는 탐색 모음의 버튼에 대한 드롭다운 메뉴를 추가합니다.

예시

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

다음 예에서는 탐색 모음에 로그인 양식이 있는 드롭다운 메뉴를 추가합니다.

예시

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

다단계 드롭다운

이 예에서는 jQuery를 사용하여 클릭 시 다단계 드롭다운을 엽니다.

예시

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

.dropdown-submenu이 예에서는 다단계 드롭다운에 대한 사용자 지정 클래스를 만들었습니다 .

예시

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