How to add active class on click and remove active on click

独自空忆成欢 提交于 2019-12-24 04:35:16

问题


I am creating accordian menu with simple js. How can I add and remove active class on click open/close?

<div class="mobile-categories">
    <h4 class="mcategory-toggle">Vehicles</h4>
    <ul class="msub-categories">
        <li>Option 1</li>
        <li>Option 2</li>
        <li>Option 3</li>
    </ul>
    <h4 class="mcategory-toggle">Education</h4>
    <ul class="msub-categories">
        <li>Option 10</li>
        <li>Option 20</li>
        <li>Option 30</li>
    </ul>
    <h4 class="mcategory-toggle">Shops</h4>
    <ul class="msub-categories">
        <li>Option 14</li>
        <li>Option 25</li>
        <li>Option 36</li>
    </ul>
</div>

a fiddle


回答1:


You can use toggleClass method.

  $(document).ready(function($) {
                $('.mobile-categories').find('.mcategory-toggle').click(function(){

            var self = $(this);

            //Expand or collapse this panel
            self.next().slideToggle('fast');

            //Remove active class for all element, except the current selected item
            $('.mcategory-toggle').not(self).removeClass('active');

            //Toggle active class for the current element
            self.toggleClass('active');

                  //Hide the other panels
            $(".msub-categories").not(self.next()).slideUp('fast');

                });
      });

You can see Working Fiddle




回答2:


Add jQuery toggle class method to your click function:

$(this).toggleClass('active');



回答3:


Add remove class on Click Using jQuery

$(document).ready(function(){
$('.btn').on('click',function(){
      if($('.box').hasClass('current')){
        $('.box').removeClass('current');
      }else{
        $('.box').addClass('current');
      }
   });
 });


来源:https://stackoverflow.com/questions/31929717/how-to-add-active-class-on-click-and-remove-active-on-click

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!