基本上我有几个班级相同的父母:
<div class="parent">
<div class="child"></div>
</div>
<div class="parent">
<div class="child"></div>
</div>
<div class="parent">
<div class="child"></div>
</div>
当我单击parent
类时,我想切换其子级。为此,我正在使用:
$(document).ready(function(){
$('.parent').click(function(e){
$(this).children('.child').toggle();
});
});
这确实可以切换我的孩子,但是如果我保持可见状态,然后单击下一个父母,我想让所有其他孩子消失。
仅使用jquery / javascript可以吗? 谢谢!
答案 0 :(得分:3)
您可以使用一个班级来管理显示,只需在当前父级上切换该班级并将其从其他班级中删除
$('.parent').click(function(){
$('.active').not(this).removeClass('active');
$(this).toggleClass('active');
})
.parent{ margin-bottom:2em}
.child{display:none}
.active .child{ display:block}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">Parent 1
<div class="child">Child</div>
</div>
<div class="parent">Parent 2
<div class="child">Child</div>
</div>
<div class="parent">Parent 3
<div class="child">Child</div>
</div>
答案 1 :(得分:1)
我认为您只需要显示一个孩子即可。为此,请先隐藏所有孩子,然后显示被点击的孩子。
$('.parent').click(function(e){
$(this).siblings().children('.child:visible').toggle();
$(this).children('.child').toggle();
}).children(".child").toggle();
$('.parent').click(function(e){
$(this).siblings().children('.child:visible').slideUp();
$(this).children('.child').slideDown();
}).children(".child").slideUp();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">parent1
<div class="child">child1</div>
</div>
<div class="parent">parent2
<div class="child">child2</div>
</div>
<div class="parent">parent3
<div class="child">child3</div>
</div>
答案 2 :(得分:0)
请尝试以下操作:-
$('.parent').click(function(e){
if($(this).children('.child').is(':visible')){
$(this).children('.child').slideUp();
}else{
$('.parent .child').slideUp();
$(this).children('.child').slideDown();
}
});