react阻止事件冒泡

react阻止事件冒泡

// 这里的handleClick事件就合成事件
<a ref="aaa" onClick={(e)=>this.handleClick(e)}>更新</a>

// 原生事件
document.addEventListener('click',e=>{ do something })

阻止合成事件间的冒泡,用e.stopPropagation();

<div ref="test" onClick={()=>this.handleClick()}>
	<a ref="update" onClick={(e)=>this.handleClick2(e)}>handleClick</a>
</div>

阻止合成事件与最外层document上的事件间的冒泡,用e.nativeEvent.stopImmediatePropagation();

document.addEventListener('click', () => {})
<div ref="test">
	<a ref="update" onClick={(e)=>this.handleClick(e)}>更新</a>
</div>

阻止合成事件与除最外层document上的原生事件上的冒泡,通过判断e.target来避免

<div ref="test">
	<a ref="update" onClick={(e)=>this.handleClick(e)}>更新</a>
</div>
        
componentDidMount() {
	document.body.addEventListener('click',e=>{
		// 通过e.target判断阻止冒泡
            if(e.target&&e.target.matches('a')){
				return;
            }
			console.log('body');
        })
    }
}

本文来自网友贝贝

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值