0

I am using custom bootstrap navbar with number of css classes here.I am finding difficulty while adding active (menu__item--current) class on selected item menu.I have added jquery code at the bottom.

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="navbar-header navbar-left">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
     </button>
      <a href="<?php echo ROOT;?>index.php"><img src="<?php echo ROOT;?>images/logob.png" width="70px" class="logo img-responsive"> </a>
    </div>
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-right" id="bs-example-navbar-collapse-1">
      <nav class="menu menu--iris">
        <ul class="nav navbar-nav menu__list ">
          <li class="menu__item menu__item--current "><a href="<?php echo ROOT;?>portfolio.php" class="menu__link">portfolios</a></li>
          <li class="menu__item "><a href="<?php echo ROOT;?>team.php" class="menu__link">our team</a></li>
          <li class="menu__item ">
            <a href="#" class="menu__link">career</a></li>
          <li class="menu__item"><a href="#" class="menu__link">Contact</a></li>

          <li class="menu__item"><a href="#" class="menu__link">about</a></li>
          <li class="menu__item"><a href="#" class="menu__link">members</a></li>
          <li class="menu__item"><a href="#" class="menu__link">news</a></li>

        </ul>
      </nav>
    </div>
  </nav>
</div>

<script type="text/javascript">

$(document).ready(function () {
    $('ul.nav > li').click(function () {
      
        $('ul.nav > li').removeClass('menu__item--current');
        $(this).addClass('menu__item--current');                
    });            
});
</script>

      
  • Paste the code you have tried, so we can help you. – Jithin Raj P R Mar 19 '18 at 09:30
  • You add something like this `$('.menu__item').click(function() { $(this).addClass('menu__item--current').siblings().removeClass('menu__item--current'); });` – Athul Nath Mar 19 '18 at 09:40
  • your code seems to be working fine. check here > https://jsfiddle.net/qaL1r5pr/4/ ( for portfolios and our team ) . – Mihai T Mar 19 '18 at 09:46
  • @anuresh thanks for your suggestions , but its working fine for dummy link but not when I am adding actual link to it. – Shoyeb Athar Mar 19 '18 at 11:06
  • 1
    Possible duplicate of [jQuery add class .active on menu](https://stackoverflow.com/questions/4866284/jquery-add-class-active-on-menu) – Bhuwan Mar 19 '18 at 11:29

2 Answers2

0

It is working properly you need to add css like this

$(document).ready(function () {
    $('ul.nav > li').click(function () {
      
        $('ul.nav > li').removeClass('menu__item--current');
        $(this).addClass('menu__item--current');                
    });            
});
.menu__item--current a{
  color:#ee5500!important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="navbar-header navbar-left">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
     </button>
      <a href="<?php echo ROOT;?>index.php"><img src="<?php echo ROOT;?>images/logob.png" width="70px" class="logo img-responsive"> </a>
    </div>
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-right" id="bs-example-navbar-collapse-1">
      <nav class="menu menu--iris">
        <ul class="nav navbar-nav menu__list ">
          <li class="menu__item menu__item--current "><a href="<?php echo ROOT;?>portfolio.php" class="menu__link">portfolios</a></li>
          <li class="menu__item "><a href="<?php echo ROOT;?>team.php" class="menu__link">our team</a></li>
          <li class="menu__item ">
            <a href="#" class="menu__link">career</a></li>
          <li class="menu__item"><a href="#" class="menu__link">Contact</a></li>

          <li class="menu__item"><a href="#" class="menu__link">about</a></li>
          <li class="menu__item"><a href="#" class="menu__link">members</a></li>
          <li class="menu__item"><a href="#" class="menu__link">news</a></li>

        </ul>
      </nav>
    </div>
  </nav>
</div>
Hiren Vaghasiya
  • 5,454
  • 1
  • 11
  • 25
  • @Gatbha thanks for your suggestions , but its working fine for dummy link but not when I am adding actual link to it. – Shoyeb Athar Mar 19 '18 at 11:57
0
$(document).ready(function () {         
$(function(){
    var current_page_URL = location.href;

    $( "a" ).each(function() {

        if ($(this).attr("href") !== "#") {

            var target_URL = $(this).prop("href");

                if (target_URL == current_page_URL) {
                    $('nav a').parents('li, ul').removeClass('menu__item--current');
                    $(this).parent('li').addClass('menu__item--current');

                    return false;
                }
        }
    }); }); });

After struggling a lot a found the solution as above code. Thanks everyone for trying to help me.