我已經使用該嵌套UL的,像這樣的下拉菜單中的一個項目:使用jQueryjQuery的.hover()是讓我瘋
<ul id="nav">
<li id="thome" class="navtab">
<a href="#" class="navlink lhome" id="nav_home" onclick="doCurrent('home');">HOME</a>
<ul id="subnav_home" class="submenu">
<li><a href="#">Dashboard</a></li>
<li><a href="#">SMS</a></li>
<li><a href="#">Email</a></li>
<li><a href="#">Twitter</a></li>
</ul>
</li>
</ul>
,我添加了一個.hover()來.navtab文件中.show()是.submenu文件。問題在於,當光標移動到新的ul中時,.nover() - .navtab的輸出會觸發.hide()子菜單,儘管我有li的高度,因此它完全包裝.submenu ul。
我已經嘗試向.hide()添加延遲,但是如果將光標快速傳遞到navtab欄上,就可以一次獲得所有子菜單。
適合我的任何解決方案?這裏是相關的Javascript。 hide()函數與.show()完全相同,只是它縮小了高度並隱藏了ul(顯然)。
$('.navtab').hover(
function(){
tabShowSubnav($(this).attr('id'));
},
function(){
tabHideSubnav($(this).attr('id'));
});
function tabShowSubnav(menu){
var sb = '#' + menu + ' > .submenu';
var tb = '#' + menu;
$('.navtab').each(function(){
if (!$(this).hasClass('current_page')){
$(tb).addClass('nav_hover');
}
});
$(tb).css('height','239px');
$(sb).show();
}
孩子們('current_page')做什麼? – montrealist 2009-10-05 19:08:50
不是 - 同樣的問題。如果你在平局上非常快,你可以讓它不隱藏(),但否則當你進入子菜單時它會消失。 – 2009-10-05 19:28:42