简体   繁体   中英

Add active class to navigation items

I have a problem with navigation - I am trying to get an active class on the navigation element and in the sub-menu.

Here is a Fiddle.

HTML:

<ul id="nav1" class="navigation">
    <li class="navigation__active"><a href="#"><i class="zmdi zmdi-home"></i> Home</a></li>

    <li class="navigation__sub">
        <a href="#"><i class="zmdi zmdi-view-week"></i> About</a>
        <ul>
            <li><a href="#">History</a></li>
            <li><a href="#">Team</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </li>
<ul>

CSS:

.navigation__active>a, .navigation__sub--active>a {
    color: red;
}

JavaScript:

( '#nav1 .navigation_active li' ).on( 'click', function () {
    $( '#nav1 .navigation_sub' ).find( 'li.navigation_active' ).removeClass( 'navigation_active' );
    $( this ).parent( 'li' ).addClass( 'navigation_active' );
});

You can refer the below working link.

$(function(){
$( '#nav1' ).click(function (e) {
    $(this).children().each(function(){
    $(this).removeClass('navigation__active');
  });
    $('#nav1 .navigation__sub' ).find( 'li.navigation__active').removeClass( 'navigation__active' );
    $(e.target).parent( 'li' ).addClass( 'navigation__active' );
});
});

https://jsfiddle.net/e3qLb1zr/24/

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