【发布时间】:2011-08-13 08:35:04
【问题描述】:
好的,我的页面上有两个下拉菜单,导航和链接。链接正常工作,但是当我尝试将鼠标悬停在它上面时,导航消失了。我不知道为什么,所以我问。 为什么当我将鼠标悬停在导航菜单上时它会消失,我该如何解决?
【问题讨论】:
标签: javascript jquery html css
好的,我的页面上有两个下拉菜单,导航和链接。链接正常工作,但是当我尝试将鼠标悬停在它上面时,导航消失了。我不知道为什么,所以我问。 为什么当我将鼠标悬停在导航菜单上时它会消失,我该如何解决?
【问题讨论】:
标签: javascript jquery html css
您有一个名为#crwrap 的元素挂在左侧菜单上。因此,当您将鼠标移动到导航选项时,会触发 mouseout,因为您突然悬停在 #crwrap 元素而不是导航菜单上。它是不可见的,但如果您使用支持 DOM 搜索的调试工具,您会看到它覆盖了导航菜单选项的区域。
它没有覆盖链接菜单,因此没有任何问题。
如果您删除 #crwrap(或使用 z-index: -999 将其移至后台),它对我来说很好。
【讨论】:
显示菜单的 JS 是通过鼠标悬停和鼠标移出菜单部分中的元素来切换的。子菜单不嵌套在这些元素中。因此,当您将鼠标向下移向子菜单时,您会触发主菜单项上的 mouseout,即隐藏子菜单。
我建议将子菜单项嵌套在主菜单项的容器中。
我还建议您查看关于 CSS hybrid menus 的优秀 alistapart.com 文章。它有一些您可能会发现有用的优秀指针和技术。
【讨论】:
$("#linklink, #linksmenu, #navilink, #navimenu").hover(function() { console.log('hovering over ' + this.id); })