很抱歉,如果这已经被问了很多次,但是我的手风琴有效,但我需要它来切换当前打开的元素。就目前而言,它不会关闭当前打开的元素。
查看我的codepen
Javasscript:
function accordion() {
var allPanels = $('.accordion > dd').hide();
$('.accordion > dt > a').on('click', function(e) {
e.preventDefault();
allPanels.slideUp(100);
$(this).parent().next().slideDown(100);
return false;
});
}
accordion();
答案 0 :(得分:1)
您应该检查标签是否已经打开。如果它已打开并单击标题,则滑动。如果不是那么就像你已经做的那样滑动。
要检查元素是否可见,您可以使用.is(":visible")
您可以使用:
if($(this).parent().next().is(":visible") ){
$(this).parent().next().slideUp(100);
}
else{
$(this).parent().next().slideDown(100);
}
答案 1 :(得分:0)
你可以这样做
$(this).parent().next().slideToggle(100);
allPanels.not($(this).parent().next()).slideUp(100);