jquery - 使用 jQuery 和绝对定位的 div 用于下拉菜单。当光标仍在 div 上时停止隐藏菜单

标签 jquery html menu cursor hide

我决定在我的下拉菜单中使用 float div,因为我可以应用阴影和圆角。

我有以下列表项:

<li class="navDrop" id="navEvents"><a href="#">Events</a></li>

以及与菜单项对应的以下 div:

<div class="navSub" id="navEventsDrop"> Events </div>

我目前正在使用以下脚本来处理元素的显示/隐藏(请注意,我已将处理程序应用到一个类,该类链接 li 和相应的 div 的 id):

<script type="text/javascript">
$(".navDrop").mouseenter(
  function () {
    $('#'+this.id+'Drop').css({
          position:'absolute',
          top: $(this).offset().top + $(this).height() + 'px',
          left: $(this).offset().left + 'px',
          zIndex:1000
    }).show();
});

$(".navDrop").mouseleave(
  function () {
    $('#'+this.id+'Drop').hide();
});
</script>

我的问题是,一旦光标离开 li,div 就会消失,无论光标是否仍在 div 上。

除了将 div 放在 .navDrop 类中之外,我想不出解决方案。但我尝试这样做,它只是奇怪地定位 div。

谢谢。

最佳答案

尝试包装每个元素

<div class="navItem">
  <li class="navTitle" id="navEvents"><a href="#">Events</a></li>
  <div class="navContent" id="navEventsDrop" style="display:none"> Events </div>
</div>

然后是 jQuery:

$('.navItem').mouseenter(function() {
   $(this).children('.navContent').show();
})

$('.navItem').mouseleave(function() {
   $(this).children('.navContent').hide();
})

关于jquery - 使用 jQuery 和绝对定位的 div 用于下拉菜单。当光标仍在 div 上时停止隐藏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155090/

相关文章:

javascript - 自己尝试一下文本编辑器

javascript - jQuery:hasClass 逻辑问题

html - 在 CSS 中的粘性页脚上方水平和垂直居中

html - SQL 获取表中的内容

ios - Swift 中的协议(protocol)问题

css - 链接 BootsFaces 品牌

jquery - 按 ID 选中多个复选框

jquery - 如何使用 jQuery 选择所有空的 p 标签?

html - 垂直更多虚线选项

c# - WinForms 本地化。如何更改菜单的语言