切换一个 <div> 并关闭另一个?
Toggle one <div> and close another?
我刚开始练习 jQuery 并编写了这个小片段来打开菜单项上的下拉菜单。问题是,如果我打开另一个下拉菜单,我想关闭活动的。
$(document).ready(function(){
$(".dropdown").click(function(){
$(this).children(".hidden").slideToggle(300);
});
});
如何扩展该代码?
问候
帕特里克
您可以 select 除了被点击的元素之外的所有下拉元素(通过使用 .not()
method 取反 this
),然后调用 .slideUp()
方法子 .hidden
元素:
$(".dropdown").click(function(){
$(".dropdown").not(this).children(".hidden").slideUp();
$(this).children(".hidden").slideToggle(300);
});
这是一个基本示例:
$(".dropdown").click(function(){
$(".dropdown").not(this).children(".hidden").slideUp();
$(this).children(".hidden").slideToggle(300);
});
.hidden { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>
我刚开始练习 jQuery 并编写了这个小片段来打开菜单项上的下拉菜单。问题是,如果我打开另一个下拉菜单,我想关闭活动的。
$(document).ready(function(){
$(".dropdown").click(function(){
$(this).children(".hidden").slideToggle(300);
});
});
如何扩展该代码?
问候 帕特里克
您可以 select 除了被点击的元素之外的所有下拉元素(通过使用 .not()
method 取反 this
),然后调用 .slideUp()
方法子 .hidden
元素:
$(".dropdown").click(function(){
$(".dropdown").not(this).children(".hidden").slideUp();
$(this).children(".hidden").slideToggle(300);
});
这是一个基本示例:
$(".dropdown").click(function(){
$(".dropdown").not(this).children(".hidden").slideUp();
$(this).children(".hidden").slideToggle(300);
});
.hidden { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>
<div class="dropdown">
<button>Dropdown</button>
<div class="hidden">Some hidden dropdown menu</div>
</div>