【发布时间】:2009-10-07 03:18:31
【问题描述】:
我正在尝试使用 jQuery 制作一个如下所示的导航下拉菜单:
<ul id="home" >
<li class="navtab"><a href="#">TABANME</a></li>
<li class="homesub"><a href="#">Some link</a></li>
<li class="homesub"><a href="#">Some link</a></li>
<li class="homesub"><a href="#">Some link</a></li>
</ul>
<li> .navtab 始终可见 - 子菜单项一开始是隐藏的。我已将 .hover() 附加到 <ul> 元素 (#home),但是当光标进入子菜单 <li> 元素时,#home 的 mouseout 会触发,并且子菜单项会隐藏。
我知道这与事件冒泡和鼠标悬停/鼠标移出有关,但我无法弄清楚当光标位于整个 <ul> 上时如何保持菜单打开的逻辑。我目前拥有的 jQuery 是:
$('#thome').hover(
function(){
tabShowSubnav($(this).attr('id'))
},
function(){
tabHideSubnav($(this).attr('id'))
});
function tabShowSubnav(menu){
var tb = '#' + menu;
var sb = '.' + menu.slice(1) + 'sub';
$(tb).css('height','239px');
$(sb).show();
}
有什么建议吗?
【问题讨论】:
标签: javascript jquery javascript-events