2013-12-22 53 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