【发布时间】:2016-05-17 17:40:25
【问题描述】:
我希望创建一个在单击完全独立的非父 div 元素时展开和折叠的 div。
下面是我喜欢并一直在搞乱的扩展/折叠效果的示例。我不确定如何最好地修改下面的代码,以便我可以点击位于侧边栏中的 div,并导致位于标题下方的另一个 div 展开/折叠,将其下方的所有内容向下推。
相关的展开/折叠 div 的内容可能是一个搜索栏,例如,用户可以通过单击侧边栏按钮来显示/隐藏它。
$(".header").click(function () {
$header = $(this);
//getting the next element
$content = $header.next();
//open up the content needed - toggle the slide- if visible, slide up, if not slidedown.
$content.slideToggle(500, function () {
//execute this after slideToggle is done
//change text of header based on visibility of content div
$header.text(function () {
//change text based on condition
return $content.is(":visible") ? "Collapse" : "Expand";
});
});
});
.container {
width:100%;
border:1px solid #d3d3d3;
}
.container div {
width:100%;
}
.container .header {
background-color:#d3d3d3;
padding: 2px;
cursor: pointer;
font-weight: bold;
}
.container .content {
display: none;
padding : 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="container">
<div class="header"><span>Expand</span>
</div>
<div class="content">
<ul>
<li>I'm putting a search bar here.</li>
</ul>
</div>
</div>
【问题讨论】:
标签: javascript jquery html css