Подтвердить что ты не робот

Предотвращение onmouseout от стрельбы по дочерним элементам

Учитывая следующее:

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>
  );

Как предотвратить включение onMouseOut, когда мышь находится над дочерним элементом NavDropdown.

Могу ли я определить, есть ли я над ребенком в onMouseOut?

4b9b3361

Ответ 1

Это не зависит от конкретной ситуации. mouseover и mouseout пузырь событий, поэтому обработчик также запускает для дочерних элементов этого элемента. mouseenter и mouseleave не пузырятся.

Итак, вы должны слушать mouseleave.