0
我有一个主要和次要导航,当用户单击链接时,此链接的背景图像将更改为“活动”状态,并将所有其他链接重置为“不活动”。这适用于我的主要导航,但我的辅助导航不会重置,导致我的所有链接都处于活动状态。我的代码:
HTML导航按钮不会重置为非活动状态
<nav id="menu">
<div id="container">
<a href="#" id="menu-link1">Link 1</a>
<a href="#" id="menu-link2">Link 2</a>
<a href="#" id="menu-link3">Link 3</a>
<a href="#" id="menu-link4">Link 4</a>
<a href="#" id="menu-link5">Link 5</a>
<a href="#" id="menu-link6">Link 6</a>
</div>
</nav><!--END MENU-->
<div id="upperContent-title">Welcome</div>
<div id="upperContent-body">
Welcome Text
</div>
<img id="upperContent-img" src="img/welcomeImg.png"/>
</div><!--END UPPER CONTENT-->
<nav id="middleNav">
<div id="middleContainer">
<a href="#" id="middleNavLinkCorner-link7">Link 7</a>
<a href="#" id="middleNavLink-link8">Link 8</a>
</div>
</nav><!--END MIDDLE NAV-->
CSS:
#menu{
background-image:url(../menuBottom.jpg);
background-repeat:repeat-x;
position:absolute;
margin-left:auto;
margin-right:auto;
margin-top:4px;
width:1024px;
height:25px;
}
#container{
position:absolute;
margin-left:200px;
margin-top:-3px;
height:24px;
}
nav a[id*="menu"]{
background-image:url(../mainNav.png);
background-repeat:no-repeat;
display:inline-block;
text-align:center;
font-family:Arial,san-sarif;
text-decoration:none;
font-size:14px;
color:#000;
margin-left:-4px;
padding-top:5px;
margin-top:3px;
padding-bottom:10px;
width:129px;
height:25px;
}
#upperContent{
background-image:url(../upperWelcome.jpg);
background-repeat:no-repeat;
margin-left:auto;
margin-right:auto;
width:1024px;
height:306px;
}
#upperContent-title{
margin-left:60px;
padding-top:40px;
font-family:Arial,sans-serif;
font-size:36px;
color:#00853f;
width:459px;
}
#upperContent-body{
margin-left:60px;
padding-top:10px;
font-family:Arial,sans-serif;
font-size:14px;
color:#000000;
width:459px;
}
#upperContent-img{
position:absolute;
margin-left:578px;
margin-top:-183px;
}
#middleNav{
background-image:url(../middleNavBG.jpg);
background-repeat:no-repeat;
margin-left:auto;
margin-right:auto;
width:1024px;
height:43px;
}
#middleContainer{
margin-left:57px;
}
nav a[id*="middleNav"]{
background-image:url(../middleNavRect.jpg);
background-repeat:no-repeat;
display:inline-block;
text-align:center;
font-family:Arial,san-sarif;
text-decoration:none;
font-size:14px;
color:#FFF;
margin-left:-4px;
padding-top:8px;
margin-top:3px;
width:116px;
height:37px;
}
nav a[id*="middleNavCorner"]{
background-image:url(../middleNavRound.png);
background-repeat:no-repeat;
display:inline-block;
text-align:center;
font-family:Arial,san-sarif;
text-decoration:none;
font-size:14px;
color:#FFF;
margin-left:-4px;
padding-top:8px;
margin-top:3px;
width:116px;
height:37px;
}
JS:
//Initialize Document.ready
$(function(){
//Navigation
//Main Nav
$("a[id*='menu']").on({
click:function(e){
$("nav a[id*='menu']").css('background-image','url(urlHere/mainNav.png)');
$(this).css('background-image','url(urlHere/mainNavVisit.png)');
}
});
//Secondary Nav
$("a[id*='middleNav']").on({
click:function(e){
$("nav a[id*='middleNavLink']").css('background-image','url(urlHere/middleNavRect.jpg');
$(this).css('background-image','url(urlHere/middleNavRectVisit.jpg)');
}
});
});//End Document.ready
的jsfiddle: JSFiddle Of Intended Result
任何帮助将不胜感激感谢!
好的,如果辅助导航将链接设置为活动状态,那么您知道点击事件肯定会触发。这可能表明您的代码行有问题,选择所有导航栏来重置它们。我会尝试像这样:$(“nav a [id * ='middleNavLink']”)。addClass(“testing”);然后在开发工具中检查它们,只是为了确保它们能够通过您的选择获得。如果是这样,它可能暗示代码中的.css部分可能存在问题 - 可能是图像网址不正确?我注意到第一个导航代码有.png,但第二个导航代码有.jpg - 它是否也应该是.png?远射,但... –
感谢您的建议卢克,它似乎已经修复了,但我很欣赏花时间来诊断这个问题。 – hexobolic