I am trying to add active class to current opened link in navbar. I've Googled it a lot. There are a lot of questions similar to this question in Stack Overflow and answers also, but These all answers are for only hash type of navbar like href="#"
and not working when I have a web sites and pages. I want to add active class properly. I've tried a lot, but didn't find perfect answer.
Here is my code:
<nav class="navbar navbar-expand-md navbar-dark sticky-top pt-0 pb-0">
<div class="container nav_container">
<a class="navbar-brand" href="<?php echo BASE_URL; ?>">
<img src="<?php echo BASE_URL; ?>/resources/assets/img/logo/logo_default.png" class="img-fluid foodbox_logo">
</a>
<button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#mainNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="mainNavbar">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link active" href="<?php echo BASE_URL; ?>">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo BASE_URL; ?>/shop.php">Shop</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo BASE_URL; ?>/cart.php">Cart</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo BASE_URL; ?>/about-us.php">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo BASE_URL; ?>/contact-us.php">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
JS:
<script>
$(document).ready(function() {
$('a.nav-link').on('click', '.nav-item a', function (e) {
$(this).parent().addClass('active').siblings().removeClass('active');
});
});
</script>
Can someone please help me?