[英]Showing active menu for sidebar adminlte
This is my adminlte sidebar.这是我的管理侧边栏。
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<!-- Add icons to the links using the .nav-icon class
with font-awesome or any other icon font library -->
<li class="nav-item">
<!--menu-open attribute-->
<a href="#" class="menu-open nav-link active">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
Adımlar
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="~/StepTwo/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 1</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepThree/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 2</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepFour/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 3</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepFive/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 4</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepSix/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 5</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepSeven/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 6</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepEight/List" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 7</p>
</a>
</li>
<li class="nav-item">
<a href="~/StepEight/ListEight" class="nav-link">
<i class="far fa-circle nav-icon"></i>
<p>Step 8</p>
</a>
</li>
</ul>
</li>
</ul>
</nav>
The script i have is below to make my sidebar active.我的脚本在下面使我的侧边栏处于活动状态。 I found it on github page but i guess im missing something and i cant seem to figure it out.
我在 github 页面上找到了它,但我想我遗漏了一些东西,我似乎无法弄清楚。
<script>
var url = window.location;
// for sidebar menu but not for treeview submenu
$('ul.sidebar-menu a').filter(function () {
return this.href == url;
}).parent().siblings().removeClass('active').end().addClass('active');
// for treeview which is like a submenu
$('ul.treeview-menu a').filter(function () {
return this.href == url;
}).parentsUntil(".sidebar-menu > .treeview-menu").siblings().removeClass('active menu-open').end().addClass('active menu-open');
</script>
It does not work.这没用。 I want to show last clicked menu to be active while the user wanders on the page.
当用户在页面上徘徊时,我想显示上次单击的菜单处于活动状态。 I'm a javascript newbie so very clear explanations appreciated.
我是一个 javascript 新手,所以非常清楚的解释表示赞赏。
Found an answer and this worked perfectly.找到了一个答案,这很有效。 Maybe it will help to someone else.
也许它会帮助别人。
<script>
/** add active class and stay opened when selected */
var url = window.location;
const allLinks = document.querySelectorAll('.nav-item a');
const currentLink = [...allLinks].filter(e => {
return e.href == url;
});
if (currentLink.length > 0) { //this filter because some links are not from menu
currentLink[0].classList.add("active");
currentLink[0].closest(".nav-treeview").style.display = "block";
currentLink[0].closest(".has-treeview").classList.add("active");
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.