CSS/JQuery:如何为表格行创建子菜单,使鼠标从行到菜单保持可见?

Posted

技术标签:

【中文标题】CSS/JQuery:如何为表格行创建子菜单,使鼠标从行到菜单保持可见?【英文标题】:CSS/JQuery: how to create submenu for table row that stays visible mousing from row onto menu? 【发布时间】:2011-12-17 23:16:23 【问题描述】:

我是一名 CSS/JQuery 菜鸟,但我已经构建了一些基础知识。只需要一些大方向。

我有一个 html 表格(在这种情况下我不得不使用带有表格数据的表格)并且需要在悬停一行时:1)在该行周围画一条线以突出显示它,以及 2)在我悬停的单元格底部挂一个小下拉菜单。

我的问题是:如果菜单在行悬停时触发,但是您将鼠标向下悬停在菜单上,如何保持该行突出显示并且菜单处于活动状态,直到您将鼠标移出菜单?我假设当鼠标离开该行时,行突出显示和菜单本身会消失。

在我的一生中,我找不到这样的例子。

【问题讨论】:

【参考方案1】:

trmouseenter 事件中,将行指定为“突出显示”类并显示您的菜单。

在菜单的mouseleave 事件中隐藏菜单并从任何包含它的行中删除“突出显示”类。

类似:

var $myMenu = $('#myMenu');

$('tr').mouseenter(function()
    $this = $(this);
    $this.addClass('highlighted');
    $myMenu.appendTo($this).slideDown();
);

$myMenu.mouseleave(function()
    $(this).slideUp();
    $('tr.highlighted').removeClass('highlighted');
);

【讨论】:

好吧,我觉得很傻。我只考虑使用 JQuery 的悬停来显示/隐藏,这会将两个操作绑定到同一个目标。我想我现在明白了。谢谢。 别觉得傻,即使是最资深的开发者有时也会忘记最明显的东西,甚至比这更明显:) 由于您使用的是 jQuery,您可能需要查看 hoverIntent 插件。这是一个很棒的插件,它可以确定用户悬停的意图,而不是仅仅根据悬停事件立即采取行动。它实际上也为您的问题内置了功能。 cherne.net/brian/resources/jquery.hoverIntent.html 为了澄清弗农的建议,悬停意图是为了延迟悬停事件,因此当用户在屏幕上移动光标时,菜单不会到处打开和关闭。跨度> 【参考方案2】:

尝试一个简单的下拉菜单,例如this one,但来自单元格。 为突出显示分配与单元格相同颜色的边框,然后在悬停时更改边框颜色。

【讨论】:

以上是关于CSS/JQuery:如何为表格行创建子菜单,使鼠标从行到菜单保持可见?的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 使用 UITableViewController 创建子菜单

如何为word文档中的表格设置同样高度的行高?

如何为Notepad++增加行删除快捷键

如何为下拉菜单制作 CSS 边框?

如何为回收站添加上下文菜单

如何为引导菜单启用悬停事件? [复制]