드롭 다운 대시 보드와 매우 유사한 드롭 다운을 만들려고합니다. 여기서 사용자 이름을 클릭하면 플라이 아웃 메뉴가 나타납니다. 사용자 이름을 다시 클릭하면 플라이 아웃이 닫힙니다 (클릭 할 때마다 토글 됨).'body'jquery 이벤트를 올바르게 처리하여 드롭 다운을 닫는 방법
한 가지주의 할 점은 플라이 아웃에있는을 제외한 아무 곳이나 클릭하면 이 닫히는 것입니다.
지금까지 거의 100 % 작동하지는 않았습니다. 실제 'body'요소를 직접 클릭하면 플라이 아웃이 닫힙니다. 이 말은 내 웹 사이트에 페이지의 전체 높이를 차지하지 않는 .wrapper 요소가 있음을 의미합니다. 실제 요소가 덮여 있지 않은 아래쪽에 얇은 줄이 그려져 있고 <body>
태그 만 있습니다. .wrapper
또는 다른 요소가 공백 (100 % 너비 보이지 않는 래퍼조차도)을 차지하는 모든 장소에서 요소가있는 곳 (본문 외에)을 클릭하면 창이 닫히지 않습니다.
// FLYOUT menu
$flyout = $('.flyout ul'),
flyoutDuration = 120;
$('.flyout h3 a').click(function(e) {
e.preventDefault();
$flyout.fadeToggle(flyoutDuration);
});
$(document).on('click',function(e) {
if ($(e.target).parents($flyout).length === 0) {
$flyout.fadeOut(flyoutDuration);
}
});
HTML 예상되는 동작은 당신이 .flyout의 하위 창을 닫도록 밤은 클릭 모든 요소를해야
<body>
<div class="blackbar">
<div class="container clearfix">
<a href="/"><div class="icon logo"></div></a>
<div class="flyout">
<h3>
Welcome back, <a href="#">username</a>
</h3>
<div class="menu">
<ul>
<li><a href="#"><div class="users"></div>Users</a></li>
<li><a href="#"><div class="groups"></div>Groups</a></li>
<li><a href="#"><div class="configuration"></div>Configuration</a></li>
<li><a href="#"><div class="logout"></div>Logout</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="wrapper">
<! -- content here -->
</div>
</body>
(등 .blackbar
, 로고, 포함 : 자바 스크립트
)
당신이 선택에 랩퍼를 추가하려고 했나 :'$ (문서) .add ('래퍼를.' – adeneo
주사위 없음, 작동하지 않음 – Tallboy