이것은 성가신 일입니다. Bootstrap 드롭 다운에서 항목을 클릭해도 드롭 다운이 닫히지 않습니다. 드롭 다운 항목을 클릭 할 때 Facebox 라이트 박스를 열도록 설정했지만 문제가 있습니다.
내가 시도한 것
항목을 클릭하면 다음과 같이 시도했습니다.
$('.dropdown.open').removeClass('open');
$('.dropdown-menu').hide();
그것은 그것을 숨기지 만 어떤 이유로 다시 열리지 않을 것입니다.
보시다시피 드롭 다운이 열려있을 때 z-index
엉망인 것처럼 보이기 때문에 닫아야합니다 (주로 드롭 다운이 Facebox 모달 상자 오버레이보다 높기 때문입니다.
Bootstrap의 내장 모달 상자를 사용하지 않는 이유
Bootstrap에 내장 된 멋진 모달 상자를 사용하지 않는 이유가 궁금하다면 다음과 같은 이유 때문입니다.
- AJAX로 콘텐츠를로드하는 방법이 없습니다.
- 모달에 대해 매번 HTML을 입력해야합니다. Facebox로 간단하게 할 수 있습니다 :
$.facebox({ajax:'/assets/ajax/dialogs/dialog?type=block-user&id=1234567'});
- 애니메이션을 적용하기 위해 CSS3 애니메이션을 사용하지만 (매우 멋져 보입니다) CSS3가 아닌 브라우저에서는보기 만하면별로 좋지 않습니다. Facebox는 JavaScript를 사용하여 페이드 인하므로 모든 브라우저에서 작동합니다.
답변
이 시도:
$('.dropdown.open .dropdown-toggle').dropdown('toggle');
이것은 또한 당신을 위해 일할 수 있습니다 :
$('[data-toggle="dropdown"]').parent().removeClass('open');
답변
여기에서 대부분의 옵션을 시도했지만 실제로는 나를 위해 일하지 않았습니다. ( $('.dropdown.open').removeClass('open');
숨겨졌지만 다른 것을 클릭하기 전에 마우스를 올려 놓으면 다시 나타납니다.
그래서 나는 그것을 whith $("body").trigger("click")
답변
$('.open').removeClass('open');
Bootstrap 4 (2018 년 10 월) :
$('.show').removeClass('show');
답변
당신은 할 필요가 $('.dropdown.open').removeClass('open');
드롭 다운 메뉴를 숨 깁니다 두 번째 줄을 제거합니다.
답변
이는 다음 과 같이 앵커 태그에 data-toggle = “dropdown” 속성을 추가하여 JavaScript 코드를 작성하지 않고도 수행 할 수 있습니다 .
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#" data-toggle="dropdown">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#" data-toggle="dropdown">Another action</a></li>
</ul>
</div>
답변
이것은 나를 위해 일한 것입니다.
$(this).closest(".dropdown").find(".dropdown-toggle").dropdown("toggle");
답변
선택한 답변이 저에게 효과가 없었지만 최신 버전의 Bootstrap 때문이라고 생각합니다. 나는 이것을 작성했다.
$('.btn-navbar').addClass('collapsed');
$('.nav-collapse').removeClass('in').css('height', '0');
앞으로 다른 사람에게 도움이되기를 바랍니다.