gpt4 book ai didi

javascript - 在 table 上创建抽屉效果

转载 作者:行者123 更新时间:2023-12-02 21:08:13 25 4
gpt4 key购买 nike

我正在创建一个包含行的表。当我 mouseover任何行,紧邻第一行下方的另一行带有 display=None更改为display=""这允许它出现。效果很好。

我想输入 onmouseleave=function(id) ,当鼠标离开这两行时,将再次隐藏第二行。例如,转到第三行,或转到页面的一侧。

效果就像一个下拉抽屉,用户可以看到更多信息并单击按钮。但是,当我输入 onmouseleave在第一行中调用(触发第二行出现的行),我无法将鼠标悬停在第二行上,否则它会被触发消失,因为鼠标离开了第一行。如果我将鼠标悬停在第二行,那么除非首先将鼠标悬停在该行上,否则该行无法消失。因此,如果我退出第一行的一侧,它不会消失,因为鼠标一开始就不会越过它。

我尝试将两行包装在 <div> 中,但这种方式未能调用onmouseleave=function(id)根本没有功能。我猜是<div>无法包裹两个<tr>

如何让这两个表行充当一个 onmouseleave=

这不允许我单击第二行 -> https://jsfiddle.net/tvxpzud8/

这根本不起作用-> https://jsfiddle.net/01w9js8x/

function openDrawer(drawer_id) {
var drawer = document.getElementById("drawer-" + drawer_id);
drawer.style.display = "";
}

function closeDrawer(drawer_id) {
drawer = document.getElementById("drawer-" + drawer_id);
drawer.style.display = "none";
}
<table>

<tr onmouseover="openDrawer(1)" onmouseleave="closeDrawer(1)">
<td>col 1-1</td>
<td>col 1-2</td>
<td>col 1-3</td>
</tr>

<tr id="drawer-1" style="display:none;">
<td>col 2-1</td>
<td>col 2-2</td>
<td>col 2-3</td>
</tr>

<tr onmouseover="openDrawer(2)" onmouseleave="closeDrawer(2)">
<td>col 3-1</td>
<td>col 3-2</td>
<td>col 3-3</td>
</tr>

<tr id="drawer-2" style="display:none;">
<td>col 4-1</td>
<td>col 4-2</td>
<td>col 4-3</td>
</tr>

</table>

最佳答案

可能有更好的解决方案,这只是我想到的第一件事。

  1. onmouseleave 从行移动到表格,并将其更改为隐藏所有抽屉。我添加了一个 class="drawer",这样我就可以一次选择所有它们。
  2. onmouseover保留在原处,但更改功能以隐藏所有抽屉,然后再显示当前抽屉。

查看我的fiddle .

关于javascript - 在 table 上创建抽屉效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61167805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com