2013-12-22 50 views
1

我正在使用Foundation 5 Accordions。他们工作,但我想补充平稳过渡。我这样做了,然后它抛出了一个TypeError。一旦解决了这个问题,就不会抛出错误,但脚本不会关闭打开的面板!无法将手风琴关闭

如何让面板关闭?

下面是使用脚本:

$(function() { 
$(".accordion").on("click", "dd", function (event) { 
    $("dd.active").find(".content").slideToggle("slow"); 
    $(this).find(".content").slideToggle("slow"); 

    var current = $(event.currentTarget); 
    if (current.hasClass('active')) { 
     current.removeClass('active'); 
    } 
}) 
}); 

我认为这将采取开放式面板的护理:

var current = $(event.currentTarget); 
    if (current.hasClass('active')) { 
     current.removeClass('active'); 
    } 

但它的工作原理则第一次在这之后没有。

我该如何解决这个问题?

jsFiddle

+1

为什么向下票? – L84

回答

0

如果你想关闭一个面板,应使用slideUp()方法,你也可以使用:not()选择为不包括有源元件:

$(".accordion").on("click", "dd:not(.active)", function (event) { 
    $("dd.active").removeClass('active').find(".content").slideUp("fast"); 
    $(this).addClass('active').find(".content").slideToggle("fast"); 
}); 

http://jsfiddle.net/J8456/

+0

工作,谢谢! – L84