我正在尝试创建一个类似于博客功能的手风琴,首先您会看到一组行(准确地说是 100 像素),当您单击博客标题时,博客文章会扩展到其全高。
这是我到目前为止所拥有的:
HTML:
<ul class="blog">
<li class="list-item">
<div class="list-item-left">
<h2 class="expand">Project Eden</h2>
<time>07.08.2012</time>
</div>
<div class="list-item-right">
<p>"Sed ut perspiciatis unde </p>
</div>
<div class="list-item-whitespace"></div>
</li>
<li class="list-item">
<div class="list-item-left">
<h2>Project Eden</h2>
<time>07.08.2012</time>
</div>
<div class="list-item-right">
<p>"Sed ut perspiciatis unde</p>
</div>
<div class="list-item-whitespace"></div>
</li>
</ul>
jQuery:
var $listItems = $('.list-item');
var closedHeight = 100;
var slideSpeed = 1000;
$(".list-item").click(function() {
if($(".list-item:animated").length)
return false;
}).toggle(function() {
var openHeight = $(this).parents("div:first").find(".list-item-right").height();
$(this).animate({height:openHeight}, slideSpeed,"easeOutExpo");
$(this).children('.list-item-whitespace').css({'display':'none'});
}, function(){
$(this).animate({height:100}, slideSpeed,"easeOutExpo");
$(this).children('.list-item-whitespace').css({'display':'block'});
});
所以基本上我们正在做的事情(据我了解,我是 jQuery 的新手!):
我们在变量中存储了一些信息,然后我们定义了一个函数,它将 .list-item 扩展到 .list-item-right 的实际高度,当我们再次单击它时,它将恢复为“关闭" 100 像素的高度。
现在,我想做的是在单击 .list-item 时不触发 .toggle 事件或 .click 事件。
相反,我希望它仅在您单击 .expand 类或 .list-item-left h2 (如果您愿意)时触发。
如果这对任何人有任何意义,请告诉我我在哪里不知所措。
最好的问候,K。