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

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

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

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

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

【问题讨论】:

    标签: jquery html css html-table hover


    【解决方案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,但来自单元格。 为突出显示分配与单元格相同颜色的边框,然后在悬停时更改边框颜色。

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2020-05-10
      • 1970-01-01
      • 2015-01-29
      • 2011-02-06
      • 2015-01-14
      • 1970-01-01
      • 2012-09-02
      • 2011-07-08
      相关资源
      最近更新 更多