我遇到一个问题,即锚标记的状态是活动的。假设我在主页上,我希望主导航链接具有活动状态,因此它具有不同的颜色。这就是我现在正在做的事情。我正在引用jquery。我已经发出警报以确保我的脚本受到攻击。这是我上次尝试过的。
<div class="grid__unit one-whole">
<nav role="navigation">
<ul id="nav--primary" class="navbar navbar--menu">
<li><a class="navitem" href="#">Link</a></li>
<li><a class="navitem" href="http://www.google.com">Google</a></li>
<li><a class="navitem" id="myNavButton" href="myLink">myTitle</a></li>
</ul>
</nav>
用css
a:hover, a:active {
color: #b74800;
}
和脚本
<script>
$(document).ready(function () {
$("#myNavButton").addClass("active");
});
</script>
编辑1:
我尝试在css和脚本中添加a.active标记,如下所示,但没有成功。
<script>
$(document).ready(function () {
var path = location.pathname.length ? location.pathname : window.location.href;
$('.active').removeClass('active');
$("#nav--primary").find('a[href*="' + path + '"]').addClass("active");
});
</script>
用css
a:hover, a:active, a.active {
color: #b74800;
}
编辑2 - 搜索
答案 0 :(得分:1)
在您的CSS中,您错过了a.active
声明。试试:
a:hover, a:active, a.active {
color: #b74800;
}
在jQuery中按ID获取元素,你必须使用#myNavButton
,所以:
$("#myNavButton").addClass("active");
答案 1 :(得分:0)
所以你需要做两件事:
a.active
a:hover, a:active, a.active {
color: #b74800;
}
$(document).ready(function () {
var path = location.pathname.lenght ? location.pathname : window.location.href;
$('.active').removeClass('active');
$("#nav--primary").find('a[href*="'+path+'"]').addClass("active");
});
答案 2 :(得分:0)
#nav--primary a.active {
color: #b74800;
}
添加此样式。
答案 3 :(得分:0)
为了获得所需的功能,我最终在父列表项中添加了一个ID,并且在文档就绪时,我在该列表项中添加了一个类。在css中,我为此添加了另一个类。
#nav--primary .is--selected .navitem,
#nav--primary .is--selected .navitem:hover,
#nav--primary .is--selected .navitem:focus {
background: #colorhere; /* primary nav current page background color */
color: #colorhere /* primary nav current page text color */
}
脚本
<script>
$(document).ready(function () {
$("#myLiID").addClass("is--selected");
});
</script>