我有一个令人讨厌的导航问题,但似乎无法让它工作。当悬停在<li>
mainnav div 中的项目上时,根据子导航显示。但是当它悬停在它们上面时,它不会保持活动类状态。选择 mainnav-li 时,应保留 subnav。离开子导航时,最初的子导航应重新出现。
请注意,我们在 document.ready 函数(在另一个 PHP 包含中定义)之后加载了一个活动子导航。
任何帮助都在这里受到高度赞赏。我迷路了 :-)
所有主要的 li-navigation 项目都在这里:
<div id="navigation-main">
<div id="mainnav">
<div class="navigation-items">
<ul>
<li id="mainnav1" class="active"><a href="#" id="header">Button 1</a></li>
<li id="mainnav2"><a href="#">Button 2</a></li>
<li id="mainnav3"><a href="#">Button 3</a></li>
<li id="mainnav4"><a href="#">Button 4</a></li>
</ul>
</div>
</div>
</div>
细分是:
<div id="navigation-sub1" class="navigation-sub">navigation-sub 1 active</div>
<div id="navigation-sub2" class="navigation-sub">navigation-sub 2 active</div>
<div id="navigation-sub3" class="navigation-sub">navigation-sub 3 active</div>
<div id="navigation-sub4" class="navigation-sub">navigation-sub 4 active</div>
到目前为止,这是我的代码...
$(document).ready(function() {
var activeId = $(".active").attr("id").replace("mainnav","");
$("#navigation-sub" + activeId).show();
$("#mainnav a").hover(function() {
//reset
$(".navigation-sub").hide();
$("#mainnav .active").removeClass("active");
//act
$(this).addClass("active")
var id = $(this).closest("li").attr("id").replace("mainnav","");
$("#navigation-sub" + id).show();
});
$("#mainnav").mouseout(function() {
$(".navigation-sub").hide();
$("#navigation-sub" + activeId).show();
});
});