当我将鼠标悬停在它上面时,如何仅在单个列表中显示 X?

穆罕默德·奥萨马

当我要在单个列表中悬停时,我正面临这个问题。当我悬停它时,我只想在单个列表上显示 X。但是当我将鼠标悬停在一个时,它会显示在所有内容中。

import React from "react";
import { useState } from "react/cjs/react.development";
import "./list.css";

function List({ items }) {
  const [over, setOver] = useState(false);

  const mouseOver = () => {
    setOver(!over);
  };

  return (
    <ul>
      {items.map((item, i) => {
        return (
          <>
            <li
              onMouseOver={mouseOver}
              onMouseOut={mouseOver}
              style={{
                borderRight: `5px solid ${item.amount < 0 ? "red" : "green"}`,
              }}
              key={i}
              className="item-name"
            >
              <p>{item.itemName}</p>
              <p>{item.amount}</p>
              <p style={{ display: over ? "block" : "none" }}>X</p>
            </li>
          </>
        );
      })}
    </ul>
  );
}

export default List;

在此处输入图片说明

沙赫里亚尔

您面临这个问题是因为所有lis 共享相同的over状态。您要么需要以某种方式为每个组件定义一个状态,要么为此使用纯 css - 这是我更喜欢的方法:

纯 CSS 方法:

.item-name .the-x {
  display: none;
}

.item-name:hover .the-x {
  display: block;
}

并将 X 部分更改为:

<li
    onMouseOver={mouseOver} /* remove this */
    onMouseOut={mouseOver}  /* remove this */
    ...
>
    ...
    <p style={{ display: over ? "block" : "none" }}>X</p> /* remove this */
    <p className="the-x">X</p> /* use this */
    ...
</li>

而不是display: none/block您可以使用opacity:0/1visibility:hidden/visible使用您喜欢的任何 CSS 属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将鼠标悬停在条形图上时如何注释X和Y的值

仅在将鼠标悬停X时间时显示Divs-无法使其正常工作

我的 GUI 中嵌入了一个绘图,我想添加一个光标以在将鼠标悬停在绘图上时显示 x 和 y 坐标

当我将鼠标悬停在文本框中时显示日历

当我将鼠标悬停在图片上时,我希望它一直放大直到不再将鼠标放在上面

当用户将鼠标悬停在它上面时,如何使 div 与周围的 div 重叠?

为什么当我将鼠标悬停在它上面时我的所有联系链接都会向下移动...我只想移动一个

当我将鼠标悬停在 SVG 按钮上时,它没有改变颜色

当我们将鼠标悬停在输入类型文本上时如何显示占位符

当我将鼠标悬停在标签上时,列表正在移动

仅当我将鼠标悬停在CSS中的图像上时才能显示放大镜吗?

addeventlistener 鼠标悬停在给出 x 和 y 值时很慢

如何获取图片的工具提示,仅当我们将鼠标悬停在其上时才会显示。硒中

仅在将鼠标悬停在图片上时如何显示按钮?

当我将鼠标悬停在qt中的不同按钮上时如何更改标签文本?

当我将鼠标悬停在chrome中的自动完成项上时,如何禁用输入标签的样式更改?

当我将鼠标悬停在框上时,如何为框中的所有元素设置动画?

当我将鼠标悬停在<a>标记上时如何消除延迟

当我将鼠标悬停在用tmap制作的地图上时,如何修复标签

每当我将鼠标悬停在滚动插件上时,如何运行ajax?

当我将鼠标悬停在按钮上时如何使图像出现(无继承)

当我将鼠标悬停在 div 上时,如何使底部边框出现?

将鼠标悬停在其方法和类上时如何显示它的javadoc?

当我将鼠标悬停在Firefox中时,下拉菜单关闭

当我将鼠标悬停在 div 上时,我希望它根据悬停在其上的第 n 个子项的数量来更改它旁边的元素

鼠标悬停在<div>中时如何显示图像?

将鼠标悬停在列表项上时如何显示工具提示?

每次将鼠标悬停在上面时,重复进行鼠标悬停旋转

每当我将鼠标悬停在导航列表上时,底部列表都会在顶部添加宽度