[英]How to slideToggle on click only children of clicked element
我有2个div,里面有2个div
<div id="div1" class="div">
<div class="flip">Click to slide down panel</div>
<div class="panel">Hello world!</div>
</div>
<div id="div2" class="div">
<div class="flip">Click to slide down panel</div>
<div class="panel">Hello world!</div>
</div>
我的JavaScript是
$(document).ready(function(){
$(".flip").click(function(){
$( ".panel" ).children( ".panel" ).slideToggle("slow");
});
});
该示例位于https://jsfiddle.net/msjaasfk/2/
所以我希望当点击一个.flip
时,只显示同一个div中的.panel
,而不是所有显示.panel
类的div。
您正在选择并切换所有 .panel
元素。 修改代码,以便只切换与单击元素对应的.panel
元素:
$(".flip").click(function() {
$(this).next().slideToggle("slow");
});
this
是对单击的.flip
元素的引用 .next()
方法将选择下一个兄弟元素(在本例中为.panel
)。 作为旁注,您还可以修改代码,以便一次只打开一个面板:
$(".flip").click(function() { $('.panel').not($(this).next()).slideUp(); $(this).next().slideToggle("slow"); });
.panel, .flip { padding: 5px; text-align: center; background-color: #e5eecc; border: solid 1px #c3c3c3; } .panel { padding: 50px; display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="div1" class="div"> <div class="flip">Click to slide down panel</div> <div class="panel">Hello world!</div> </div> <div id="div2" class="div"> <div class="flip">Click to slide down panel</div> <div class="panel">Hello world!</div> </div>
在您的上下文中, .panel
将选择panel
类的所有元素。 在.flip
元素的click事件中,您可以使用jQuery的.next()仅选择下一个.panel
您可能想要指定.panel
选择器,以防div中的HTML结构发生更改
$(this).next(".panel").slideToggle("slow");
这是完整的例子
$(document).ready(function() { $(".flip").click(function() { $(this).next(".panel").slideToggle("slow"); }); });
.panel, .flip { padding: 5px; text-align: center; background-color: #e5eecc; border: solid 1px #c3c3c3; } .panel { padding: 50px; display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="div1" class="div"> <div class="flip">Click to slide down panel</div> <div class="panel">Hello world!</div> </div> <div id="div2" class="div"> <div class="flip">Click to slide down panel</div> <div class="panel">Hello world!</div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.