Search code examples
jqueryhtmlcssslidetoggle

jQuery Drop Down Menu - slideToggle


$(document).ready(function() {
  $('.cats_showall').click(function() {
    $('.cats_dropdown li').slideToggle();
  });
});
.cats_dropdown li {
  display: none;
}

.cats_dropdown>li:first-child {
  display: list-item;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul class="cats_dropdown">
  <li>Category 1 - <a href="#" class="cats_showall">Show all</a></li>
  <li>Category 2</li>
  <li>Category 3</li>
  <li>Category 4</li>
</ul>

But it doesn't work. Please help :)


Solution

  • This will keep the list items from losing their bullets:

    $(document).ready(function(){
            $('.cats_showall').click(function(){
                    $('.cats_dropdown li:not(:first)').slideToggle(function() {
                        if($(this).is(':visible')) {
                            $(this).css('display','list-item');
                        }
                    });
            });
    });