gpt4 book ai didi

javascript - 使用无序列表的 jQuery 下拉导航

转载 作者:行者123 更新时间:2023-11-30 10:56:02 25 4
gpt4 key购买 nike

我正在尝试使用 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>元素,mouseout对于 #home触发,子菜单项隐藏。

我知道这与事件冒泡和 mouseover 有关/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();
}

有什么建议吗?

最佳答案

帮自己一个大忙,将菜单标记的结构更改为:

<ul id="home" >
<li class="navtab">
<a href="#">TABANME</a>
<ul class="submenu">
<li><a href="#">Some link</a></li>
<li><a href="#">Some link</a></li>
<li><a href="#">Some link</a></li>
</ul>
</li>
</ul>

并将悬停事件放在 li.navtab 上,使子菜单可见。您会发现这非常更容易做到。例如,CSS:

ul.submenu { display: none; }

与:

$(function() {
$("li.navtab").hover(function() {
$(this).children("ul.submenu").show();
}, function() {
$(this).children("ul.submenu").hide();
});
});

并且您已经完成了大部分工作。

综上所述,我强烈建议使用现有的 jQuery 菜单插件。有很多关于这些。我对 superfish 的体验相对较好.重新发明这个特殊的轮子毫无意义。

关于javascript - 使用无序列表的 jQuery 下拉导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1526309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com