【发布时间】:2021-08-20 01:29:54
【问题描述】:
我有一个关于突出显示的导航栏菜单的问题,该菜单仅在我们单击它时才会突出显示。为此,我正在使用 javascript。但是,每个页面都有自己的子页面,例如页面Home有一个local/home的链接,但是它的内容会指向local/home/content。子链接不会使导航栏发挥作用导航栏被编码在不同的文件中,我只是在主页和其他页面中扩展。我不太擅长解释,但如果我可以详细说明任何部分,我会这样做。下面我附上了我的 JS 和我的导航栏:
HTML:
<ul class="navbar-nav mr-auto" id="nav">
<li class="nav-item">
<a class="nav-link active" href="{{ url('/') }}">Home
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('courses') }}">opportunities</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('events') }}">events</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('uqalc') }}">courses</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('contact') }}">contact</a>
</li>
</ul>
JS:
const currloc = location.href;
const menuItem = document.querySelectorAll('a');
const menuLen = menuItem.length;
for (let i = 0; i < menuLen; i++) {
menuItem[i].classList.remove('active');
if (menuItem[i].href === currloc) {
menuItem[i].className = "nav-link active";
}
}
【问题讨论】:
-
你想问什么?您的意思是要制作
navjs 文件并在每个页面上加载它? -
是的,也在子页面中
-
如果
nav元素在您的网站上冲浪时打开,那么在单击菜单时应该触发添加和删除类。所以以nav.addEventListener('click', func)开头可以使js函数。
标签: javascript html css web