我创造了一个简单的2步手风琴:http://jsfiddle.net/oampz/WkuMg/1/
我想知道的是,我是否使用了正确的jQuery来确保在点击heading
DIV时,以下content
DIV展开以及所有其他content
DIV关闭。
jQuery的:
$(".heading").click(function () {
var $this = $(this);
$this.next(".content").slideToggle();
$this.parent().siblings().children().next().slideUp();
return false;
});
另外,看看上面的小提琴,你可以看到我试图将content
DIV放在heading
DIV的右侧和顶部。我已经使用了一些CSS:
CSS:
.content {
display: none;
}
.heading {
font-weight: bold;
padding: 15px 0 15px 20px;
background: GREY;
width: 30%;
}
.content {
width: 100%;
margin-left: 35%;
position: absolute;
top: -2px;
width: 60%;
}
具体使用绝对和顶部:-2px;
由于
答案 0 :(得分:2)
if
语句将用于删除相同的幻灯片重复。
$(document).ready(function(){
$(".heading").click(function () {
if ($(this).next(".content").hasClass("folded")){
$(".content").slideUp();
$(".unfolded").toggleClass("folded").toggleClass("unfolded");
$(this).next(".content").toggleClass("folded").toggleClass("unfolded").slideDown();
}
return false;
});
});
这里是fiddle
更新了 fiddle
答案 1 :(得分:1)
您的代码有效且有意义,您可以通过在新内容的显示中加入一些延迟来改善,以实现更好的转换http://jsfiddle.net/WkuMg/2/
setTimeout(function(){
$this.next(".content").slideToggle();
}, 200);
您也可以使用类,因此您不必以这种方式对HTML进行排序,并将所有标题包装在一个部分中,所有内容都包含在另一个部分中。