提前感谢您的宝贵时间!这是我的设置和Id,就像之前单击的div一样,在显示新的div之前使用滑动切换来隐藏。
CSS:
.waxing {
display: none;
}
.facials {
display: none;
}
.bodywraps {
display: none;
}HTML
<div class="heroIcons">
<div class="button waxingButton">
<p>view prices</p>
</div>
<div class="button facialsButton">
<p>view prices</p>
</div>
<div class="button bodywrapsButton">
<p>view prices</p>
</div>
</div>
<div class="section services">
<div class="wrapper">
<div class="waxing">
<p>content that I want to slidetoggle</p>
</div>
</div>
</div>
<div class="section services">
<div class="wrapper">
<div class="facials">
<p>content that I want to slidetoggle</p>
</div>
</div>
</div>
<div class="section services">
<div class="wrapper">
<div class="bodywraps">
<p>content that I want to slidetoggle</p>
</div>
</div>
</div>JQuery
$(".heroIcons .waxingButton").click(function(){
$(".waxing").slideToggle(1500);
});
$(".heroIcons .facialsButton").click(function(){
$(".facials").slideToggle(1500);
});
$(".heroIcons .bodywrapsButton").click(function(){
$(".bodywraps").slideToggle(1500);
});这一切都很好,但我希望当我单击打开一个不同的div时,它可以关闭之前打开的div
发布于 2018-05-18 22:51:15
你应该尽量避免代码重复(DRY原则)。
下面是一些经过重构的标记,但您可以添加任意数量的按钮和部分,而无需添加更多JS代码:
$(".button").click(function() {
var className = $(this).data('button')
$('.content').hide()
$('.' + className).slideToggle(1500);
});.button {
cursor: pointer
}
.content {
display: none;
background: honeydew;
border: 1px solid green;
padding: 1rem;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button" data-button="waxing">
<p>view prices</p>
</div>
<div class="button" data-button="facials">
<p>view prices</p>
</div>
<div class="button" data-button="bodywraps">
<p>view prices</p>
</div>
<div class="content waxing">waxing PRICES</div>
<div class="content facials">facials PRICES</div>
<div class="content bodywraps">bodywraps PRICES</div>
发布于 2018-05-18 22:48:44
你可以这样做-在打开你点击的下拉列表之前,它应该隐藏打开的下拉列表(你会想要调整.hide上的速度)
$(".heroIcons .waxingButton").click(function() {
$(".bodywraps").hide(1500);
$(".facials").hide(1500);
$(".waxing").slideToggle(1500);
});
$(".heroIcons .facialsButton").click(function() {
$(".bodywraps").hide(1500);
$(".waxing").hide(1500);
$(".facials").slideToggle(1500);
});
$(".heroIcons .bodywrapsButton").click(function() {
$(".waxing").hide(1500);
$(".facials").hide(1500);
$(".bodywraps").slideToggle(1500);
});https://stackoverflow.com/questions/50413617
复制相似问题