Javascript jQuery Accordion-无法关闭当前<;dt>;

Javascript jQuery Accordion-无法关闭当前<;dt>;,javascript,jquery,css,Javascript,Jquery,Css,下面是简单的jQuery手风琴: (function ($) { var allPanels = $('.accordion > dd').hide(); $('.accordion > dt > a').click(function () { allPanels.slideUp(); $(this).parent().next().slideDown(); return false; }); })(

下面是简单的jQuery手风琴:

(function ($) {

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

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

})(jQuery);

<dl class="accordion">
<dt><a href="">Panel 1</a></dt>

    <dd>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</dd>
<dt><a href="">Panel 2</a></dt>

    <dd>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.</dd>
<dt><a href="">Panel 3</a></dt>

    <dd>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus hendrerit. Pellentesque aliquet nibh nec urna. In nisi neque, aliquet vel, dapibus id, mattis vel, nisi. Sed pretium, ligula sollicitudin laoreet viverra, tortor libero sodales leo, eget blandit nunc tortor eu nibh. Nullam mollis. Ut justo. Suspendisse potenti.</dd>
</dl>
(函数($){
var allPanels=$('.accordion>dd').hide();
$('.accordion>dt>a')。单击(函数(){
allPanels.slideUp();
$(this.parent().next().slideDown();
返回false;
});
})(jQuery);
佩伦茨克发酵多洛。阿利奎姆·奎姆·莱克托,便利拍卖人,ultrices ut,秃鹫元素,nunc。
Donec nec justo eget felis facilisis酵母菌。阿利奎姆·波特提托·莫里斯坐在阿梅特·奥奇旁边。埃涅亚贵族佩伦茨克猫。
Lorem ipsum dolor sit amet,是一位杰出的领导者。Phasellus hendrerit。佩伦茨克·阿利奎特·尼布·内尔那。在nisi neque,aliquet vel,dapibus id,mattis vel,nisi。塞德·普雷蒂姆、利奥里特·维韦拉、利奥·索达莱斯自由侵权人、埃吉特·布兰迪特·努克侵权人或欧盟nibh。纳拉姆·莫利斯。胡斯托。潜力悬钩子。
问题是,当您单击面板1时,
将消耗,但如果再次单击以关闭它(面板1),
将隐藏并再次消耗。这是错误的,如果用户再次单击面板1,它应该关闭,那么如果选项卡打开,如何关闭


jsIDLE:

问题在于行
allPanels.slideUp()
,您应该忽略此操作中的当前面板

试一试


演示:

JavaScript

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

  $('.accordion > dt > a').click(function () 
   {
    allPanels.not( $(this).parent().next().stop(true, true).slideToggle()).stop(true,true).slideUp();
    return false;
   });
})(jQuery);

您可以使用
slideToggle()

检查这个

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

  $('.accordion > dt > a').click(function () 
   {
    allPanels.not( $(this).parent().next().stop(true, true).slideToggle()).stop(true,true).slideUp();
    return false;
   });
})(jQuery);