无法关闭手风琴

时间:2013-12-22 06:55:59

标签: javascript jquery zurb-foundation

我正在使用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 个答案:

答案 0 :(得分: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/