问题描述
当我将鼠标悬停在子菜单上时,我试图使其保持显示状态。
目前,当我将鼠标悬停在Locations
时,它消失了。
我的演示: :
这是我的代码:
$('.main a.primary').hover(function(e){ e.preventDefault(); $(this).next().toggle(); }).hover();
.sub-menu {display:none;background:#ccc}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <ul class="sf-menu"> <li class="main"> <a href="" class="primary">Locations</a> <ul class="sub-menu"> <li><a href="/location/athina/" title= "View all posts in Athina">Athina</a></li> <li><a href="/location/beirut/" title= "View all posts in Beirut">Beirut</a></li> </ul> </li> </ul>
1楼
这是一个完全没有JS的解决方案。 只要将容器悬停即可显示子菜单。
.sub-menu {
display:none;
background:#ccc
}
.main:hover .sub-menu {
display: block;
}
2楼
为什么不这样呢? 悬停功能应该以不同的方式使用。 该事件应绑定到父项。
$('.main a.primary').parent().hover(function(e){ $(this).find("a").next().show(); }, function () { $(this).find("a").next().hide(); });
.sub-menu {display: none; background: #ccc}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <ul class="sf-menu"> <li class="main"> <a href="" class="primary">Locations</a> <ul class="sub-menu"> <li><a href="/location/athina/" title= "View all posts in Athina">Athina</a></li> <li><a href="/location/beirut/" title= "View all posts in Beirut">Beirut</a></li> </ul> </li> </ul>
除了使用JS,您还可以单独使用CSS:
.sub-menu { display: none; background: #ccc } .main:hover .sub-menu { display: block; }
<ul class="sf-menu"> <li class="main"> <a href="" class="primary">Locations</a> <ul class="sub-menu"> <li><a href="/location/athina/" title= "View all posts in Athina">Athina</a></li> <li><a href="/location/beirut/" title= "View all posts in Beirut">Beirut</a></li> </ul> </li> </ul>
3楼
为什么用简单的CSS做到这一点?
HTML
<ul class="sf-menu">
<li class="main">
<a href="" class="primary">Locations</a>
<ul class="sub-menu">
<li><a href="/location/athina/" title=
"View all posts in Athina">Athina</a></li>
<li><a href="/location/beirut/" title=
"View all posts in Beirut">Beirut</a></li>
</ul>
</li>
</ul>
CSS
.sub-menu {display:none;background:#ccc}
.main:hover .sub-menu{
display:block
}
当您在主类子菜单上悬停时,这里将显示简单逻辑
要么
$('.sf-menu').children().hover(function(e){
$(this).find("a").next().show();
}, function () {
$(this).find("a").next().hide();
});