我在页面上有四个“.content”部分。我希望能够切换每个部分,但也显示所有部分以显示所有“.content”。当我尝试添加show all按钮时,切换将停止工作。仍然习惯jQuery,任何帮助将不胜感激!
以下是HTML的结构:
<div class="row add-top">
<div class="span4">
<p class="expand"><a href="#">Show All</a></p>
<p class="contract"><a href="#">Hide All</a></p>
<p class="heading"><strong>Week 01 - Welcome!</strong></p><!-- WEEK -->
<section class="content">
<p></p>
</section>
</div>
$(document).ready(function () {
$(".content").hide();
//toggle the componenet with class msg_body
$(".heading").click(function () {
$(this).next(".content").slideToggle(500);
$(".content").hide();
//toggle the componenet with class msg_body
$(".expand").click(function () {
$(this).next(".content").slideToggle(500);
$(".content").hide();
//toggle the componenet with class msg_body
$(".contract").click(function () {
$(this).next(".content").slideToggle(500);
});
})
});
}
答案 0 :(得分:0)
尝试将所有click events
组合为全部working same
并使用slideDown()代替slideToggle(),同时不要使用next()
使用{{1转到$('.content') selector
喜欢,
toggle
如果您有$(function(){
$(".content").hide();
//toggle the componenet with class msg_body
$(".heading, .expand, .contract").click(function () {
$(".content").hide().slideDown(500);
});
});
,请使用closest()试试,
multiple-content
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试
$(document).ready(function () {
var $contents = $(".content").hide();
$(".heading").click(function () {
var $next = $(this).next(".content").stop(true, true).slideToggle(500);
$contents.not($next).hide();
});
$(".expand").click(function () {
$contents.stop(true, true).slideDown()
})
$(".contract").click(function () {
$contents.stop(true, true).slideUp()
});
})
演示:Fiddle