我手里拿着一把手风琴,并没有打开和关闭每个标签。它只在选择另一个标题时关闭标签,但我希望用户能够在点击时关闭它。我不知道如何编辑这个Jquery以允许这种情况发生。
jQuery("ul.gdl-accordion li").each(function(){
jQuery(this).children(".accordion-content").css('height', function(){
return jQuery(this).height();
});
if(jQuery(this).index() > 0){
jQuery(this).children(".accordion-content").css('display','none');
}else{
jQuery(this).find(".accordion-head-image").addClass('active');
}
jQuery(this).children(".accordion-head").bind("click", function(){
jQuery(this).children().addClass(function(){
if(jQuery(this).hasClass("active")) return "";
return "active";
});
jQuery(this).siblings(".accordion-content").slideDown();
jQuery(this).parent().siblings("li").children(".accordion-content").slideUp(); jQuery(this).parent().siblings("li").find(".active").removeClass("active");
});
});
我假设它位于.click
函数的某个位置,在if
语句中......但我不确定原因。
我也不确定为什么它会将第一个标签默认为开放...有没有办法修改它?
非常感谢任何建议。非常感谢SO。
答案 0 :(得分:2)
改为使用slideToggle():
jQuery(this).siblings(".accordion-content").slideDown();
jQuery(this).siblings(".accordion-content").slideToggle();
答案 1 :(得分:1)
这里是acordion link和完整的jQuery代码:
jQuery(document).ready(function($){
//you can now use $ as your jQuery object.
$(".panel-heading").click(function() {
$(this).parent().toggleClass('active').find('.panel-body').slideToggle('fast');
$(".panel-heading").not(this).parent().removeClass('active').find('.panel-body').slideUp('fast');
});
});
答案 2 :(得分:0)
答案 3 :(得分:-2)
我建议你使用jQuery手风琴
$(function() {
$( "#accordion" ).accordion({
collapsible: true
});
});
检查example here。我想这就是你需要的。