Аккордеон не закрывается при щелчке мышью

Я сделал аккордеон, и он прекрасно работает, но когда он скользит вниз, и когда мы нажимаем на него, чтобы скользить вверх, он не идет вверх в сторону закрытия. Ниже мой код, пожалуйста, скажите, как поступить?

(function($) {

    var allPanels = $('.accordion > dd').hide();

    $('.accordion > dt > a').click(function() {
        allPanels.slideUp();
        $(this).parent().next().slideDown();
        return false;

    });

})(jQuery);

2 ответа

Попробуйте это: http://jsfiddle.net/DDUQ5/1/

(function($) {

 var allPanels = $('.accordion > dd').hide();

 $('.accordion > dt > a').click(function() {
  $this = $(this);
  $target =  $this.parent().next();
  allPanels.removeClass('active').slideUp();
  if($target.is(':hidden')){
     allPanels.removeClass('active').slideUp();
     $target.addClass('active').slideDown();
  }

 return false;
 });

})(jQuery);​

Я думаю, что это проблема, которую вы скользите скрытые элементы

var allPanels = $('.accordion > dd').hide();

вместо этого попробуйте это:

(function($) {
   var allPanels = $('.accordion > dd').hide();
   $('.accordion > dt > a').toggle(function() {
      allPanels.slideUp();
      $(this).parent().next().slideDown();
      return false;
   },function() {
      $(this).parent().next().slideUp();
      return false;
   });
})(jQuery);
Другие вопросы по тегам