reactjs - 防止 onmouseout 在子元素上触发

标签 reactjs

鉴于以下情况:

render() {

  const onMouseOver = (event) => {
    this.setState({ isHovering: true });
  };

  const onMouseOut = (event) => {
    this.setState({ isHovering: false });
  };

  const open = this.state.isHovering ? true : false;

  return (
    <Nav className={styles.TopNav} bsStyle="pills" activeKey={1}>
      <NavDropdown
        className={dropDownClasses}
        eventKey={1}
        open={open}
        title="Cards"
        id="nav-dropdown"
        onMouseEnter={onMouseOver}
        onMouseOut={onMouseOut}>
        <MenuItem eventKey="1.1">Action</MenuItem>
        <MenuItem eventKey="1.2">Another action</MenuItem>
      </NavDropdown>
      <NavItem className={styles.navLink} eventKey={2}>Blog</NavItem>
    </Nav>
  );

当鼠标位于 NavDropdown 的子级上方时,如何防止 onMouseOut 触发。

我可以在 onMouseOut 中检测我是否超过了 child 吗?

最佳答案

这不是 React 特有的。 mouseovermouseout 事件冒泡,因此处理程序也会触发该元素的子元素。 mouseentermouseleave 不会冒泡。

所以你应该听mouseleave

关于reactjs - 防止 onmouseout 在子元素上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071798/

相关文章:

css - 有条件地内联样式基于 prop 的 react 组件

javascript - ReactJs/ typescript : Make component state object and properties readonly

reactjs - 如何控制组件的渲染时间? React js 用于向帖子添加评论

javascript - axios 调用 react 后状态未更新

reactjs - 使用 TypeScript + React 时出现多个错误

javascript - ReactJs 与 ChartJs 中的数据可视化

reactjs - 如何使用键盘 Tab 键聚焦于 Material UI Link(不使用组件 ="button")

javascript - React Hooks TypeScript 事件和状态类型

javascript - ImmutableJS - 只更新对象中的一个键值

javascript - 如何使用express/node.js通过互联网请求React应用程序