Reputation: 11
I have a nice two row menu, where the second row appears on hover on the first row. The second row, however, disappears when I click on it; unless I mouse over the parent in the first row. I would like the parent and sibling to remain highlighted, until another item is clicked. I have searched through many questions, but cannot find what I am doing wrong.
My css:
#main-nav {
margin: 0px 0px 0px 0px;
text-align: left;
height: 25px;
background:url('images/buttonback.gif') repeat-x;
padding-top: 0px;
padding-left: 43px;
}
#main-nav li {
display: inline;
list-style: none;
}
#main-nav li a {
width: 109px;
height: 15px;
margin-right: 5px;
font-size: 12px;
text-decoration: none;
color: #f2f2f2;
font-family: Arial, Helvetica, sans-serif;
text-transform: uppercase;
font-weight: bold;
padding: 4px;
outline: 0;
position: relative;
top: 5px;
}
#main-nav li a:hover, #main-nav li a.active {
background: #00539f;
}
#menu2 {
width: 800px;
height: 25px;
padding-left: 0px;
background:url('images/brownback.gif') repeat-x;
}
.sub-links {
display: none;
position: absolute;
width: 800px;
top: 154px;
text-align: left;
}
#main-nav li .sub-links li a:hover {
background: #ca9e59;
}
The Jquery script:
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(function(){
$('#main-nav li a.main-link').hover(function(){
$("#main-nav li a.main-link").removeClass("active"); $(this).addClass("active");
$(".sub-links").hide();
$(this).siblings(".sub-links").fadeIn();
});
$(function(){
$(".sub-links a").click(function(){
$(".sub-links").hide();
$(this).fadeIn();
});
});
});
</script>
And the html:
<ul id="main-nav">
<li><a class="main-link" href="index.htm">Home</a>
</li>
<li><a class="main-link" href="about.htm">About Us</a>
<ul class="sub-links">
<li><a href="mission.htm" title="Mission-Vision-Values">Mission Vision Values</a> </li>
<li><a href="board.htm" title="Board">Board</a> </li>
<li><a href="stratplan.htm" title="StratPlan">Strategic Plan</a> </li>
<li><a href="staff.htm" title="Staff">Staff</a> </li>
<li><a href="customervalue.htm" title="CustomerValuePropostion">Customer Value Proposition</a> </li>
</ul>
</li>
<li><a class="main-link" href="facilities.htm">Facilities</a>
</li>
<li><a class="main-link" href="http://www.fhhr.ca/services.htm">Services</a>
</li>
<li><a class="main-link" href="http://www.fhhr.ca/careers.html">Careers</a>
</li>
<li><a class="main-link" >News & Info</a>
<ul class="sub-links">
<li><a href="annualreport.htm" title="AnnualReport">Annual Report</a></li>
<li><a href="regionnews.htm" title="RegionNews">Region News</a></li>
<li><a href="media.htm" title="MediaRelease">Media Releases</a></li>
<li><a href="newsletter.htm" title="Newsletter">Newsletter</a></li>
</ul>
</li>
<li><a class="main-link" href="contact.htm">Contact Us</a>
</li>
</ul>
<div id="menu2"></div>
Upvotes: 1
Views: 811
Reputation: 76880
The second row disappears because you hide it on click: if you don't want to hide it just remove this part:
$(function(){
$(".sub-links a").click(function(){
$(".sub-links").hide();
$(this).fadeIn();
});
});
});
Upvotes: 2