Javascript 两个引导选项卡同时显示为活动状态
我有五个选项卡正在使用引导进行动画。在我添加最后一个选项卡:管理之前,它们工作得很好。单击管理选项卡时,超级管理员选项卡在导航中显示为仍处于活动状态。但是,当我单击SuperAdmin选项卡时,我没有相同的问题。此时“管理”选项卡处于非活动状态。因此,问题只会以一种方式发生。创建管理选项卡时,我从该选项卡进行了一些复制和粘贴,因为设计类似。我想这就是问题的原因,但我找不到确切的问题 单击“管理”选项卡时,我确实尝试从“超级管理员”选项卡中删除活动类,但这似乎不起作用:Javascript 两个引导选项卡同时显示为活动状态,javascript,jquery,css,html,twitter-bootstrap,Javascript,Jquery,Css,Html,Twitter Bootstrap,我有五个选项卡正在使用引导进行动画。在我添加最后一个选项卡:管理之前,它们工作得很好。单击管理选项卡时,超级管理员选项卡在导航中显示为仍处于活动状态。但是,当我单击SuperAdmin选项卡时,我没有相同的问题。此时“管理”选项卡处于非活动状态。因此,问题只会以一种方式发生。创建管理选项卡时,我从该选项卡进行了一些复制和粘贴,因为设计类似。我想这就是问题的原因,但我找不到确切的问题 单击“管理”选项卡时,我确实尝试从“超级管理员”选项卡中删除活动类,但这似乎不起作用: <script>
<script>
$("#management").click(function () {
$("#super-admin").removeClass("active");
});
$(“#管理”)。单击(功能(){
$(“#超级管理员”).removeClass(“活动”);
});
这是导航:
<ul class="nav nav-tabs" id="navTabs">
<li @(Request.Url.AbsoluteUri.Contains("Create") ? Html.Raw("class=\"active\"") : Html.Raw("")) > @Html.ActionLink("Add Record", "Create", "Home")</li>
<li @(Request.Url.AbsoluteUri.Contains("Search") ? Html.Raw("class=\"active\"") : Html.Raw("")) >@Html.ActionLink("Search", "Search", "Home")</li>
@if (User.IsInRole("Admin") || User.IsInRole("SuperAdmin") || User.IsInRole("Manager"))
{
<li @(Request.Url.AbsoluteUri.Contains("Category") ? Html.Raw("class=\"active\"") : Html.Raw("")) >@Html.ActionLink("Admin", "Index", "Category")</li>
}
@if (User.IsInRole("SuperAdmin") || User.IsInRole("Manager"))
{
<li @(Request.Url.AbsoluteUri.Contains("SuperAdmin") ? Html.Raw("class=\"active\"") : Html.Raw("")) >@Html.ActionLink("SuperAdmin", "Index", "SuperAdmin")</li>
}
@if (User.IsInRole("Manager"))
{
<li @(Request.Url.AbsoluteUri.Contains("Management") ? Html.Raw("class=\"active\"") : Html.Raw(""))>@Html.ActionLink("Management", "Index", "Management")</li>
}
<li >@Html.ActionLink("Logoff", "Logoff", "Home")</li>
</ul>
- @Html.ActionLink(“添加记录”、“创建”、“主页”)
- @Html.ActionLink(“Search”、“Search”、“Home”)
@if(User.IsInRole(“管理员”)| | User.IsInRole(“超级管理员”)| | User.IsInRole(“管理员”))
{
- @Html.ActionLink(“Admin”、“Index”、“Category”)
}
@if(User.IsInRole(“超级管理员”)| | User.IsInRole(“管理者”))
{
- @Html.ActionLink(“超级管理员”、“索引”、“超级管理员”)
}
@if(User.IsInRole(“管理者”))
{
- @Html.ActionLink(“管理”、“索引”、“管理”)
}
- @Html.ActionLink(“注销”、“注销”、“主页”)
我能做的最好的事情就是在JSFIDLE中展示这一点:
已选择超级管理员:
选定的管理层:
您可以看到超级管理员选项卡仍然激活该类
任何帮助都将不胜感激。谢谢 单击“管理”选项卡时,您正在检查请求.Url.AbsoluteUri.Contains(“管理”) 当您导航到“管理”选项卡时,url是否会在路径中包含“超级管理员”或“管理员”一词
尝试调试应用程序并检查
Request.Url.AbsoluteUri
似乎发生了错误,因为我正在检查绝对Uri是否包含单词“Manage”,这对两个选项卡都是正确的。我没有检查并更改我的控制器名称,而是将路由更改为一个新名称“SuperAdmin”
因此,在我的RouteConfig中,我将控制器路由映射到SuperAdmin:
routes.MapRoute(
"ManageRoute",
"SuperAdmin/{id}",
new { controller = "Manage", action = "Index", id = UrlParameter.Optional }
);
然后检查Uri是否包含以下内容:
<li @(Request.Url.AbsoluteUri.Contains("SuperAdmin")
你能在jsfiddle上复制这个问题吗?当然,我会在几分钟后发布,因为我使用的.net元素无法在jsfiddle中复制。如果您认为错误不在上面显示的代码块中,我可以根据需要在这里添加任何其他代码。我确实为clarityPlease添加了一些图片,请发布呈现的HTML。net在这里是无关紧要的。你应该在你的问题中创建一个代码片段,或者链接到像bootply这样的站点上的一个示例。好的,让我来试试