<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>React 在body上绑定事件以及阻止事件冒泡</title><script src="https://unpkg.com/react@16/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script><script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script><style>html{height: 100%;}body{height: 100%;background-color: rgba(0,0,0,0.2);}.m-outer{background-color: red;}</style>
</head><body><div id="root"></div><script type="text/babel">class Toggle extends React.Component {constructor(props) {super(props);this.state = {isToggleOn: true};// 这个绑定是必要的,使`this`在回调中起作用this.handleClick = this.handleClick.bind(this);}componentDidMount() { document.body.addEventListener('click', e => { if (e.target && e.target.matches('#m-btn')) { return; }             console.log('body');});             } componentWillUnmount() { document.body.removeEventListener('click');}                handleClick() {this.setState(prevState => ({isToggleOn: !prevState.isToggleOn}));}render() {return (<button onClick={this.handleClick} id="m-btn">{this.state.isToggleOn ? 'ON' : 'OFF'}</button>);}}ReactDOM.render(<Toggle />,document.getElementById('root'));</script>
</body></html>

转载于:https://www.cnblogs.com/xutongbao/p/9924745.html

React 在body上绑定事件以及阻止事件冒泡相关推荐

  1. 事件(阻止事件传播、阻止默认事件、事件源对象、事件委托)

    阻止事件传播 阻止事件传播e.stopPropagation() 谷歌浏览器 阻止事件传播(冒泡阶段) var oBig = document.getElementById('big');var oS ...

  2. Vue 2_3.vue的v-on键盘事件和阻止事件默认行为

    vue中键盘事件的关键字是 v-on:keydown,格式为 v-on:keydown="fun($event)" ($event是vue中的事件对象,和我们传统js中的event ...

  3. js阻止默认事件和阻止事件冒泡浅谈

    入行三年,今天重新谈下这两个事件: 一.默认事件,即像 1.a链接点击跳转行为 2.form表单中的button或type为submit的input点击会默认提交submit事件 3.document ...

  4. 阻止默认事件与阻止事件冒泡

    事件捕获 事件由父级向子级传递 通用样式: <style>.d1{width: 300px;height: 300px;background-color:tomato;overflow: ...

  5. element组件自带的事件如何阻止其冒泡

    如下示例,@confirm.stop并不能组织事件冒泡,那怎么办? <el-popconfirmtitle="这是一段内容确定删除吗?"@confirm.stop=" ...

  6. JS、Vue、React阻止事件冒泡及阻止默认事件

    JS阻止事件冒泡及阻止默认事件解决方案: 1.event.preventDefault -- 阻止默认 Event 接口的 preventDefault()方法,告诉user agent:如果此事件没 ...

  7. html 冒泡事件拦截,JavaScript阻止事件冒泡与事件捕获

    1.事件冒泡 在一个对象上触发某类事件,如onclick事件等,在其祖先节点上也会依次触发该事件. 事件冒泡 依次输出:a.div.body 注意:不是所有的事件都能冒泡.blur.focus.loa ...

  8. 简单了解事件冒泡和阻止事件冒泡

    1.什么叫事件冒泡? 就是在触发事件时候 会一层一层向上冒泡(他同时会触发父类的事件) 2.阻止事件冒泡 意思就是阻止事件向上传递 第一种ie浏览器的阻止事件冒泡 利用了一种属性cancelBubbl ...

  9. JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)

    文章目录 事件对象 获取事件对象 部分常用属性 事件流 事件捕获概念: 事件冒泡概念: 阻止事件流动: 相同的鼠标经过事件: 两种(监听事件)注册事件的区别: 传统on注册(L0) 事件监听注册(L2 ...

最新文章

  1. linux共享比windows好处,开源Linux虚拟化优势比Windows有何特点?
  2. [转]程序员生涯总结
  3. 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
  4. qsort函数应用大全
  5. c++迭代器的一个例子
  6. linux i18n修改,中文版英文版体现
  7. AD域机器如何指定时钟服务器,active-directory – 如何让我的域控制器与正确的外部时间源同步?...
  8. 大学计算机基础毕业论文操作步骤,大学计算机基础教学论文
  9. 网上读书关于软件测试,【读书笔记】之软件测试
  10. 【Linux】生产者消费者编程实现-线程池+信号量
  11. 通过“”斐波那契数列“”学习函数递归
  12. ArcGIS中KML/KMZ转为.shp文件
  13. oracle 时间段加减,ORACLE 时间加减操作
  14. Oracle官网下载11g历史版本
  15. Blender插件BoxCutter 7.1.7v15 硬表面建模2.91+教程Box Cutter
  16. linux系统 oracle 11g字符界面详细安装过程
  17. 记不住的 rank函数
  18. 自制车速记录仪「GitHub 热点速览 v.21.31」
  19. 每条跑道背后,可能都有一个胖子~
  20. 洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S 题解

热门文章

  1. Linux--文件结构体struct file
  2. FineReport报表和J2EE应用的集成
  3. Ubuntu下安装nfs服务
  4. 在windows下写makefile编译代码
  5. 接触VC之四:COM组件模型基础
  6. Visual Studio 2005 移植 (札记之一)
  7. 最安全的js类型检测
  8. linux内核字符设备文件的自动创建
  9. 前端小知识点(3):JavaScript 单线程
  10. 重学java基础第十三课:java帝国的诞生