2

나는 아코디언과 그 잘 동작하지만 아래로 내려갈 때 그것을 클릭하여 위로 밀면 위쪽으로 닫히지 않습니다. 아래 코드는 친절하게 진행 방법을 알려주는 것입니까?아코디언이 마우스 클릭으로 닫히지 않음

(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); 
+0

을 [ ** Google 검색 코드 스 니펫 **] (http : // css-tric ks.com/snippets/jquery/simple-jquery-accordion/) 그 튜토리얼에는 [** jsFiddle Demo **] (http://jsfiddle.net/chriscoyier/VPfJ5/3/)가 있습니다. OP 상태로 다시 스크롤하지 않습니다. – arttronics

답변

1

나는 이것이 당신이 숨겨진 요소를 슬라이딩하는 문제라고 생각합니다

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

대신 하나의 시도 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);​ 
+0

코드의 동작을 변경하지 않습니다. 동일한 요소를 두 번만 선택합니다. – undefined

+0

그것은 작동하지 않습니다. 다른 제안 ... –

+0

방금 ​​답변을 업데이트했습니다. ** 토글 **을 사용 **이 시나리오에서 **를 클릭하십시오. 이것이 도움이되는지보십시오. – Jai

2

이 시도 :

(function($) { 

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

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

    }); 

})(jQuery); 
+1

** + 1 ** 우수 답변이지만 모두가 '느린'상태이거나 사용하지 않는 것이 가장 좋습니다. 즉, 같은 시간에 모든 애니메이션을 보유하십시오. 이렇게하면 한 탭이 ​​닫히는 동안 다른 탭이 같은 속도로 열립니다. – arttronics

+1

@arttronics : 귀하의 제안을 존중하십시오 .. 대답 업데이트 됨 ... – Anujith

+0

Thanks Man .. !!! 나는 너에게 고맙다는 말을 가지고있다. 내 문제가 해결되었다. 사랑을 ... –