单击JavaScript关闭手风琴

时间:2019-12-19 22:52:55

标签: javascript jquery html css

在打开手风琴项目后,我试图在下次单击时关闭手风琴。考虑到我目前设置的方式(下),实现此目的的最佳方法是什么?我的代码如下:

HTML:

<div class="faq-accordion">                  
    <section id="1">
        <h4><a href="#1">Accordion Title</a></h4>
        <div>
            <p>Accordion Content</p>
         </div>
     </section>
</div>

Javascript:

$(document).ready(function(){

    $('.faq-accordion h4').click(function(){
        if( $(this).next().is(':hidden') ) {
            $('.faq-accordion h4').removeClass('faq-active').next().slideUp();      
            $(this).addClass('faq-active').next().slideDown();
        }
        return false;
    });
});

1 个答案:

答案 0 :(得分:1)

您可以这样做:

(function($) {

  var accordions = $('.accordion .content').hide();

  $('.accordion .header > a').click(function() {
    accordions.slideUp();
    if($(this).parent().next().is(':visible')) {
        $(this).parent().next().slideUp();
    } else {
        $(this).parent().next().slideDown();
    }
    return false;
  });

})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="accordion">
  <div class="header"><a href="">Accordion title 1</a></div>
  <div class="content">Content 1</div>

  <div class="header"><a href="">Accordion title 2</a></div>
  <div class="content">Content 2</div>

  <div class="header"><a href="">Accordion title 3</a></div>
  <div class="content">Content 3</div>
</div>

如果您有任何疑问,请告诉我。

希望对您有帮助。