2

私はアコーディオンとその動作を正常にしましたが、下にスライドし、クリックして上にスライドすると、閉じる位置に向かって上向きになりません。以下は私のコードです。

(function($) {

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

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

    });

})(jQuery);
4

2 に答える 2

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);​
于 2013-01-03T07:06:27.710 に答える
1

これは、非表示の要素を上にスライドさせている問題だと思います

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);
于 2013-01-03T06:06:21.917 に答える