猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
React 如何阻止事件冒泡?
在react组件中一个元素绑定onClick事件,点击后总会向上传播,如何阻止冒泡?有什么解决方案
动漫人物
浏览 850
回答 2
2回答
一只萌萌小番薯
阻止冒泡和默认事件和原生js一样的,不知道你的具体是什么情况:e.stopPropagation();
0
0
0
犯罪嫌疑人X
React 为提高性能,有自己的一套事件处理机制,相当于将事件代理到全局进行处理,也就是说监听函数并未绑定到DOM元素上。因此,如果你禁止react事件冒泡e.stopPropagation(),你就无法阻止原生事件冒泡;你禁用原生事件冒泡e.nativeEvent.stopPropagation(),React的监听函数就调用不到了。正确的姿势,应该是判断event.target对象,是否是目标对象、或包含的对象、或被包含的对象,来决定是否触发事件。以下函数就可以用来判断包含性:function contains(root, n) { var node = n; while (node) { if (node === root) { return true; } node = node.parentNode; } return false;}demohandleClick (e) { if(e.target.nodeName === 'li'){ // do something } if(contains(this.root, e.target)){ // do something }}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
React.JS
react ,react router,react redux的学习顺序是什么?
3 回答
为什么import React from 'react',React首字母必须大写?
3 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续