我是一名学生,对ASP.NET MVC还比较新,之前主要使用ASP.NET Web Form。(已经习惯了它)
我有一个列表:
<ul class="sidebar bg-grayDark">
<li class="active">
<a href="@Url.Action("Index", "Home")">
<span class="mif-home icon"></span>
<span class="title">Home</span>
</a>
</li>
<li class="bg-hover-black">
<a href="@Url.Action("Index", "Product")">
<span class="mif-shop icon"></span>
<span class="title">Products</span>
<span class="counter">14</span>
</a>
</li>
<li class="bg-hover-black">
<a href="@Url.Action("Index", "Category")">
<span class="mif-flow-cascade icon"></span>
<span class="title">Categories</span>
<span class="counter">9</span>
</a>
</li>
<li class="bg-hover-black">
<a href="@Url.Action("Index", "User")">
<span class="mif-users icon"></span>
<span class="title">Users</span>
<span class="counter">1</span>
</a>
</li>
</ul>
我的目标:
在渲染视图时,我想要将“active”添加到已单击的标记中。
例如:我单击“分类”,然后主页失去其活动类,并向其类添加“active”(以及使用"bg-hover-black"反向操作)。我以为通过检查实际呈现的视图来完成这个任务,但是我不知道该如何实现。 (我不知道如何检查实际呈现的视图,但可以使用Razor检查条件)
我首先尝试了JavaScript:
$(function () {
$('.sidebar').on('click', 'li', function () {
if (!$(this).hasClass('active')) {
$('.sidebar li').removeClass('active');
$(this).addClass('active');
}
})
})
但是它不起作用,因为当页面加载时,HTML 会重新呈现带有“Home”部分的“active”。(如果我删除“Home”的“active”,那么除了在点击和页面加载之间什么也没有活动状态)。你有什么解决方案吗?我在网上搜索了很多,但没有找到任何帮助我的东西。对于任何英语错误,我很抱歉,我还在学习中:)。谢谢, Hellcat8。