简体   繁体   中英

How to change the class of a <li> element after clicking on a tab

I would like to modify the class of certain elements of my sidebar when some user clicks on a tab. In short, change the class of the sidebar elements to current class + " active"

I have implemented a partially working solution as I could after doing some research on my own.

This part of the code is key:

$(".setActive").click(function() {
            $(".sidebar-item:contains('"+$(this).attr("data-target")+"')").parent().parent().addClass(' active');
})

Actually, with that line of code, I change the class to active but there is a problem:

  • I don't know how to remove the active class from the previously visited sidebar elements, then I am getting something like this:

当前结果

How can I solve this issue?

JS FIDDLE LIVE DEMO

Remove all active class added before adding the current one

$(".setActive").click(function() {
    $(".sidebar-element.active").removeClass('active');
    $(".sidebar-item:contains('"+$(this).attr("data-target")+"')").parent().parent().addClass(' active');
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM