<script>
$(function () {
/** add active class and stay opened when selected */
var url = window.location;
// for sidebar menu entirely but not cover treeview
$('ul.nav-sidebar a').filter(function () {
return this.href == url;
}).addClass('active');
// for treeview
$('ul.nav-treeview a').filter(function () {
return this.href == url;
}).parentsUntil(".nav-sidebar > .nav-treeview").addClass('menu-open').prev('a').addClass('active');
});
</script>
代码解析
获取当前 URL:通过 window.location 获取当前页面的 URL。
普通菜单高亮:通过 ul.nav-sidebar a 选择器找到所有侧边栏菜单项,然后使用 filter 方法筛选出与当前 URL 匹配的菜单项,并为其添加 active 类。
树形菜单高亮:对于树形菜单(通常是有子菜单的项),代码会先找到匹配的菜单项,然后向上查找父级元素,添加 menu-open 类以展开菜单,同时为父级链接添加 active 类。
如果你用的是 AdminLTE2,那么可以使用下面的代码:
<script>
$(document).ready(function () {
/** add active class and stay opened when selected */
var url = window.location;
// for sidebar menu entirely but not cover treeview
$('ul.sidebar-menu a').filter(function () {
return this.href == url;
}).parent().siblings().removeClass('active').end().addClass('active');
// for treeview
$('ul.treeview-menu a').filter(function () {
return this.href == url;
}).parentsUntil(".sidebar-menu > .treeview-menu").siblings().removeClass('active').end().addClass('active');
})
</script>