React 阻止事件冒泡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React 阻止事件冒泡相关的知识,希望对你有一定的参考价值。

简单来说

 e.stopPropagation() 可以阻止合成事件之间的冒泡  不可以阻止合成事件到原生事件的冒泡

 

因为React委托的document 和原生document不是同一个事物

e.stopPropagation()阻止的只是到react对应document

而当事件触发时,会向 react和原生document两个方向传递

 

如果要阻止这两种冒泡,得写上下面两句,就真正阻止了冒泡

e.stopPropagation();
e.nativeEvent.stopImmediatePropagation();
 
stopImmediatePropagation()的作用 详见   http://www.runoob.com/try/try.php?filename=tryjquery_event_stoppropagation
 
至于为什么
e.nativeEvent.stopPropagation(); 不可行
而e.nativeEvent.stopImmediatePropagation();可行  还不太清楚

以上是关于React 阻止事件冒泡的主要内容,如果未能解决你的问题,请参考以下文章

React 中阻止事件冒泡的问题

右键、阻止冒泡

JS-阻止冒泡事件与事件委托

深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)

深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)

react事件代理