html - 将鼠标悬停在其中的特定元素上时如何不触发表行的悬停效果

标签 html css hover popover

我在表格行上有悬停效果。在表格内,会出现一个弹出菜单。问题是当鼠标悬停在弹出菜单上时,它的表格行悬停效果被触发(如附图所示)。 问题是悬停在popover上时如何不触发表格行的悬停效果?

Image of the effect

我还附加了下面的标记。

<table class="table__table">
<tbody>
    <tr class="table__body__tr">
        <td class="table__body__td">Comment</td>
        <td class="table__body__td">
            <button type="button" class="three-dots"></button>
            <div class="popover__menu is-opened">
                <a href="#" class="popover__link">Reply to comment</a>
                <a href="#" class="popover__link">Delete comment</a>
            </div>
        </td>
    </tr>
</tbody>

CSS

.table {
    &__body {
        &__tr {
            transition: background-color .1s;

            &:hover {
                background-color: $grey--light;
            }
        }
    }
}

.popover {
    &__menu {
        position: absolute;
        left: 0;
        visibility: hidden;
        opacity: 0;
        z-index: -1;

        width: auto;

        background-color: white;

        &.is-opened {
            z-index: 1;
            visibility: visible;
            opacity: 1;
        }
    }
}  

最佳答案

我能想到的两个简单快捷的方法是

在你的行中添加一个 id <tr data-row_id='1'>然后在你的弹出元素上做同样的事情 <div data-row_id='1'>然后在悬停弹出窗口时应用一个函数,只需向 tr 添加一个具有相同数据行 ID 的类即可隐藏 tr 悬停效果。

https://api.jquery.com/data/

或者编写另一个 jquery 函数来简单地找到父行,并在悬停弹出窗口时再次应用一个类。您可以为此使用 closest() 方法

https://api.jquery.com/closest/

如果您发布您的 jquery 代码或者如果您使用的是纯 javascript,只需将其发布在这里以进一步帮助您

关于html - 将鼠标悬停在其中的特定元素上时如何不触发表行的悬停效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36661726/

相关文章:

javascript - 在不同行中显示多选选项

javascript - 获取可拖动元素的实时位置

css - 在 bootstrap 3 中获取 bootstrap 2 按钮样式

jquery - 通过 .text() 推送背景颜色的十六进制代码值

javascript - 如何创建照片网格,您可以将它们悬停在其中,它们就会变成其他照片?

javascript - 使用 Google Sheets 编写的脚本进行简单计算

html - 复选框上的宽度 100% 使其居中对齐。我该如何应对?

javascript - 如何更改整个 slider 的背景图像 - bootstrap

html - 悬停效果适用于两个元素,但它应该只适用于唯一的元素

css - 如何在 100% 的容器宽度中将一行相对居中的 <div> 居中