我正在尝试使用 jQuery 创建自定义手风琴效果,其中“折叠”项目显示每个项目中的第一行文本。当用户点击其中一个项目时,它应该动画显示全文;与普通手风琴的功能非常相似,只是我希望我的手风琴能够预览文本。
我的脚本几乎完成了,但我仍然有几个问题:
- 如果该项目已经处于活动状态并再次单击,则该项目不应折叠。
- 动画一个接一个地发生,但我希望它们同时发生。
我可以做些什么来完成脚本?
这是我的代码和一个 jfiddle:
<ul>
<li>
<span>Item 1</span>
<div>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</li>
<li>
<span>Item 2</span>
<div>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
</li>
<li>
<span>Item 3</span>
<div>
<p>At vero eos et accusam et justo duo dolores et ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</li>
</ul>
<script type="text/javascript">
$("span").click(function(){
var h = $(this).siblings("div").find("p").height();
$("ul li div").animate({height:"20px"}, 100);
if( !$(this).hasClass("active") ){
$(this).addClass("active");
$(this).siblings("div").animate({height: h+10 + "px"}, 200);
}
});
</script>