Я хочу изменить функцию класса li как «активную» при нажатии на нее. Когда это происходит, открывается новая страница, и класс li становится активным. Например, страницу можно открыть с помощью тега «Обзор», как определено li. Когда я нажимаю любой из тегов, новая страница может быть открыта с активным тегом li. Я пытаюсь написать несколько кодов, но не могу изменить актив li.
Вот мои коды, показанные ниже.
Домашняя страница
<div class = "col-sm-3 col-md-2 sidebar">
<ul class = "nav nav-sidebar">
<li class = "active"><a href = "index.jsp">Overview</a></li>
<li><a href = "list_users">Users</a></li>
<li><a href = "#">Categories</a></li>
<li><a href = "#">Books</a></li>
</ul>
<ul class = "nav nav-sidebar">
<li><a href = "#">Customers</a></li>
<li><a href = "#">Reviews</a></li>
<li><a href = "#">Orders</a></li>
</ul>
</div>
Страница пользователя.
<div class = "col-sm-3 col-md-2 sidebar">
<ul class = "nav nav-sidebar">
<li><a href = "index.jsp">Overview</a></li>
<li><a href = "list_users">Users</a></li>
<li><a href = "#">Categories</a></li>
<li><a href = "#">Books</a></li>
</ul>
<ul class = "nav nav-sidebar">
<li><a href = "">Customers</a></li>
<li><a href = "">Reviews</a></li>
<li><a href = "">Orders</a></li>
</ul>
</div>
Javascript-код
<script>
// Nav bar change active status
$(".nav li").on("click", function() {
$(".nav li").removeClass("active");
$(this).addClass("active");
});
</script>
Я говорю, чтобы изменить активный
Обычно это выглядит так
<div class = "col-sm-3 col-md-2 sidebar">
<ul class = "nav nav-sidebar">
<li><a href = "index.jsp">Overview</a></li>
<li class = "active"><a href = "list_users">Users</a></li>
<li><a href = "#">Categories</a></li>
<li><a href = "#">Books</a></li>
</ul>
<ul class = "nav nav-sidebar">
<li><a href = "">Customers</a></li>
<li><a href = "">Reviews</a></li>
<li><a href = "">Orders</a></li>
</ul>
</div>
Но это действительно так
<div class = "col-sm-3 col-md-2 sidebar">
<ul class = "nav nav-sidebar">
<li><a href = "index.jsp">Overview</a></li>
<li><a href = "list_users">Users</a></li>
<li><a href = "#">Categories</a></li>
<li><a href = "#">Books</a></li>
</ul>
<ul class = "nav nav-sidebar">
<li><a href = "">Customers</a></li>
<li><a href = "">Reviews</a></li>
<li><a href = "">Orders</a></li>
</ul>
</div>
.nav-sidebar > .active > a,
.nav-sidebar > .active > a:hover,
.nav-sidebar > .active > a:focus {
color: #fff;
background-color: #428bca;
}
Я имею в виду показать, что код javascipt не может работать. Как я могу это исправить?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Почему бы вам не использовать CSS псевдокласс:active для решения этой проблемы?
.nav li:active {
// your style
}
Вот мой ответ. Я решил это.
$(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('active');
$(this).parent('li').addClass('active');
return false;
}
}
});
});