I have the following problem.
In layout I have menu
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-responsive-collapse">
<ul class="nav navbar-nav">
<li class="active">
@Html.ActionLink("Blog","Posts","Blog",null,null)
</li>
<li>
@Html.ActionLink("Książki", "Books", "Books", null,null)
</li>
<li>
@Html.ActionLink("O mnie", "AboutMe", "Blog", null,null)
</li>
</ul>
</div>
<!--/navbar-collapse-->
I want to set class='active' for element that was clicked, so I wrote script below (Ignore that it can be written better) which is also in layout page.
<!-- JS Global Compulsory -->
<script type="text/javascript" src="~/Scripts/assets/plugins/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="~/Scripts/assets/plugins/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="~/Scripts/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<!-- JS Implementing Plugins -->
<script type="text/javascript" src="~/Scripts/assets/plugins/back-to-top.js"></script>
<!-- JS Page Level -->
<script type="text/javascript" src="~/Scripts/assets/plugins/countdown/jquery.countdown.js"></script>
<script type="text/javascript" src="~/Scripts/assets/plugins/backstretch/jquery.backstretch.min.js"></script>
@RenderSection("scripts", required: false)
<script type="text/javascript" src="~/Scripts/assets/js/app.js"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
App.init();
$('.navbar-nav li').click(function () {
var lis = $('.navbar-nav li');
lis[0].classList.remove('active');
lis[1].classList.remove('active');
lis[2].classList.remove('active');
this.classList.add('active');
});
});
</script>
But after I click on a link it doesn't change. I mean it changes when I step over the script, but after that it seems that the whole page is requested again and changes are overriden. How do I solve this?
Thanks for any replies.
Paweł
$('.navbar-nav li').removeClass('active');I can't ignore that :)classListproperty you could useremoveClassandaddClass.$(this).addClass('active');