jquery - JQuery:尝试在主页上注入 css 并且锚标记 HREF 包含某些内容
问题描述
我设置网站的方式,我的主页(“/”)也是一个 MVC 控制器/操作(“/Dashboard”)。我正在使用选项卡进行导航,因此仪表板对应于第一个选项卡。如果您在任何时候单击仪表板,我的代码将使选项卡处于活动状态,并且任何其他选项卡在导航到时都会处于活动状态。
但是,对于主页来说,这很棘手,因为我的代码会检查以匹配锚标记href
以确定选项卡是否处于活动状态。如果我检查“/”,所有选项卡都将被激活,因为它们包含在每个选项卡中href
(例如,“/Dashboard”、“/Dashboard2”等)。
这是(编辑)整个代码:
$(document).ready(function () {
setNavigation();
});
function setNavigation() {
var path = window.location.pathname;
path = path.replace(/(?!^)\/$/, "");
path = decodeURIComponent(path);
$(".toptab a").each(function () {
var href = $(this).attr('href');
if ((path == "/") && (path.substring(0, href.length) == "/Dashboard")) {
$(this).closest('li').addClass('m-menu__item m-menu__item--submenu m-menu__item--tabs m-menu__item--active m-menu__item--active-tab');
}
else if (path.substring(0, href.length) === href) {
$(this).closest('li').addClass('m-menu__item m-menu__item--submenu m-menu__item--tabs m-menu__item--active m-menu__item--active-tab');
}
else {
$(this).closest('li').addClass('m-menu__item m-menu__item--submenu m-menu__item--tabs')
}
});
}
编辑 1:这是我的主页锚标记<a class="m-menu__link" href="/Dashboard">
所有其他锚在语法上都是相同的,唯一改变的是名称(例如,“/Dashboard2”将是页面 /Dashboard2 等)。
编辑 2:第二个和第三个 else if/else 条件用于将选项卡设置为活动/非活动。
有什么建议么?此代码不会触发。如果我只使用“/”部分,则所有选项卡都处于活动状态。
编辑 3:这是 HTML 在主页上的样子(最终else
应用):
<ul class="toptab m-menu__nav m-menu__nav--submenu-arrow">
<li class="m-menu__item m-menu__item--submenu m-menu__item--tabs">
<a class="m-menu__link" href="/Dashboard">
Dashboard
</a>
...
</li>
</ul>
解决方案
我能够在第一条if
语句中使用它来实现它:
if ((path == '/') && (href == '/Dashboard'))
推荐阅读
- machine-learning - 类相关性及其影响
- android - 导航编辑器初始化失败
- wordpress - 用户优惠券
- python - 为什么内联浮点打印与python出错
- python - 按子类类型过滤
- python - UnboundLocalError:分配前引用的局部变量“(Var)”
- python - 'pipenv install' 失败并出现 TypeError: must be str, not type
- offset - 布尔玛容器在画布中引起问题?
- python - python CSV,找到最大值并打印信息
- php - Laravel Mail / Swift / 如何全局配置“发件人”地址