在锚点上触发 jQuery 的 hover() 以显示包含 LI 的下拉菜单?

Posted

技术标签:

【中文标题】在锚点上触发 jQuery 的 hover() 以显示包含 LI 的下拉菜单?【英文标题】:Trigger jQuery's hover() over anchor to show drop-downs within containing LIs? 【发布时间】:2011-10-22 22:45:16 【问题描述】:

我有一个水平导航栏,它是一个带有锚标签的无序列表。它目前使用 jQuery 的悬停(鼠标悬停和鼠标悬停)在每个 LI 中显示下拉导航。

我怎样才能做到这一点,而不是在将鼠标悬停在 LI 上时触发下拉菜单,而是在将鼠标悬停在锚标记上时触发下拉菜单?当我将它更改为锚点时,下拉菜单总是在将鼠标悬停在其顶部时消失,但是当我将 LI 设置为 hover() 的目标时它工作正常(我猜是因为所有的下拉代码包裹在 LI 中,因此光标仍悬停在 LI 上)。

由于设计原因,我需要这样设置,所以没有办法改变它。我需要仅从锚点而不是 LI 触发 hover()。

【问题讨论】:

你能把代码托管在 jsfiddle 上吗?无法想象问题 【参考方案1】:

您可以通过锚点的悬停代码更改 LI 的类。离开 LI 时将其改回。

【讨论】:

【参考方案2】:

如果我理解正确,您遇到的问题是下拉菜单在您将鼠标移到它之前关闭。这可能是因为锚标记和下拉菜单之间存在间隙。

那么,您将开启器更改为 a-tag,然后添加一个小计时器,即使您将鼠标移出,也可以让下拉列表保持打开一秒或多秒?无论如何,这样的添加还是不错的,如果您不小心将鼠标移出导航栏并且由于它关闭而不得不返回,则会令人恼火。

编辑:另外,是的,JSFiddle 它。

【讨论】:

【参考方案3】:

尝试在你的锚点内放置一个 span 标签:

<a href='#'><span>test</span></a>

a span 
    display: block;

【讨论】:

以上是关于在锚点上触发 jQuery 的 hover() 以显示包含 LI 的下拉菜单?的主要内容,如果未能解决你的问题,请参考以下文章

:在锚点上悬停过渡

bootstrap 4,光标悬停在按钮上时不会改变,但在锚点上会改变

Codeigniter PHP - 在锚点加载视图

JEST 不会触发模拟函数 Vue js

如何在锚点标记中以编程方式调用onclick()事件,同时在onclick函数中保留“this”引用?

将字体真棒跨度图标放置在锚点内的文本上方