我有一个带有一些切换功能的div
<div className={styles.divStyle} onMouseEnter={this.hover} onMouseOut={this.hover}>
和继承人的功能
constructor(props) {
super(props);
this.state = {
isToggle: false
};
this.hover = this.hover.bind(this);
}
hover(e) {
this.setState({
isToggle: !this.state.isToggle
});
}
它正在切换隐藏显示隐藏和显示div中某些图标的块
<i style={{display: this.state.isToggle ? 'block': 'none'}} class="fa fa-chain"/>
但每当我将鼠标悬停在div中的图标或图像上时,它都被视为鼠标输出,我希望div中的项目计为切换功能的div,我做了一个我正在谈论的样本在一个codepen中。将鼠标悬停在图像或文本上
答案 0 :(得分:2)
您需要onMouseLeave
:
<section onMouseEnter={this.hover} onMouseLeave={this.hover}>
更新了笔:https://codepen.io/acdcjunior/pen/pVjZzg
有关mouseleave
event的更多信息(粗体是我的):
指针设备的指针会触发
mouseleave
事件 (通常是鼠标)移出具有侦听器的元素 附在它上面。
mouseleave
和mouseout
相似,但mouseleave
不同 不是泡沫而mouseout
。
这意味着mouseleave
被解雇了 指针有退出元素和所有后代,而 当指针离开元素或离开其中一个时,会触发mouseout
元素的后代(即使指针仍然在 元素)。
答案 1 :(得分:-1)
您使用过的活动是这项工作的错误选择。使用onMouseOver
事件