javascript - 当我单击导航栏中的任何项目时,如何激活导航栏中的链接?
问题描述
当我单击导航栏中的任何选定项目时,我遇到了将类属性更改为活动状态的问题。
我编写了如下所示的这段 js 代码来实现这个过程,但它不起作用。
这是我的HeaderPartialView部分。
.... css files
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
这是我的_Layout.cshtml部分。
....
@{
Html.RenderAction("HeaderPartial", "Home");
}
@{
Html.RenderAction("NavbarPartial", "Home");
}
....
@{
Html.RenderAction("JSFilesPartial", "Home");
}
这是我的JSFilesPartial文件。
<script src="~/Content/SiteLayout/assets/js/navigation-bar.js"></script>
这是我的navigation-bar.js文件。
$(document).ready(function () {
var current = location.pathname;
$('.navigation-bar li a').each(function(){
var $this = $(this);
if($this.attr('href').indexOf(current) !== -1){
$this.addClass('active');
}
})
});
这是NavbarPartial文件。
<nav id="navbar" class="navbar">
<ul class="navigation-bar">
<li><a class="active" href="/Home/Index">Home</a></li>
<li><a href="/Home/About Us">About Us</a></li>
<li><a href="/Home/Projects">Projects</a></li>
</ul>
<i class="bi bi-list mobile-nav-toggle"></i>
</nav><!-- .navbar -->
我该如何解决这个问题?
解决方案
$(document).ready(() => {
$(".somClass li a").on('click', (e) => {
$(".somClass li a").removeClass('active');
$(e.target).addClass('active');
});
});
.active {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="somClass">
<li><a class="active" href="#">link 1</a></li>
<li><a href="#">link 2</a></li>
<li><a href="#">link 3</a></li>
</ul>
由于您有活动类作为锚元素的道具,因此您应该尝试.navigation-bar li a
使用
推荐阅读
- javascript - Paypal javascript sdk - 送货地址
- sql - 如何使用存储过程删除雪花中多余的反斜杠(/)?
- pine-script - 松树脚本错误 - 使用了“系列字符串”类型的参数,但应使用“常量字符串”
- r - 如何在R中的列表中找到最大值的位置?
- python - 这个函数有什么作用?我收到一个 AttributeError
- reactjs - 如何用函数组件解决 React 中的不受控组件问题?
- php - 如何在 url 中隐藏用户 ID
- python - 尽管我的 python 脚本失败了,但 Gitlab 管道总是通过
- javascript - 从获取的数据中动态创建反应组件
- linux-device-driver - 在设备树中,节点的中断输出单元大小为 1,但其中断父节点似乎有 #interrupt-cells = 3。为什么?