## 事件机制
DOM事件模型:事件捕获阶段、目标阶段、事件冒泡阶段。
*IE10及以下不支持捕获型事件*
#### 相关方法
**addEventListener(event, listener, useCapture)**
参数定义:event---(事件名称,如click,不带on),listener---事件监听函数,useCapture---是否采用事件捕获进行事件捕捉,默认为false,即采用事件冒泡方式
> addEventListener在 IE11、Chrome 、Firefox、Safari等浏览器都得到支持。
**attachEvent(event,listener)**
参数定义:event---(事件名称,如onclick,带on),listener---事件监听函数。
*attachEvent主要用于IE浏览器,并且仅在IE10及以下才支持*
**preventDefault()**
阻止事件默认行为
**stopPropagation()**
阻止事件冒泡
## 事件捕获(event capturing)
当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件。
## 事件冒泡(dubbed bubbling)
与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点。
## 事件委托
利用事件捕获和事件委托的原理,不直接在需要触发的元素上绑定事件,而是在其父元素或者子元素上添加监听事件并判断触发元素,从而执行相关方法。
```js
parent.onclick = function(e){
if(e.target.id == "child"){
console.log("您点击了child元素")
}
}
```
## 自定义事件
[实例](https://segmentfault.com/a/1190000008778993)
- Houser的个人Wiki
- Javascript
- 语言基础
- 变量
- 操作符整理
- new
- Ajax
- 事件
- 遍历
- 字符串转数字方法
- 原型链
- apply/call/bind
- 异步编程
- 模块化
- 继承的方式
- 对象的创建方式
- 内存泄漏
- js延迟加载
- 数据类型
- typeof
- 垃圾回收
- 作用域
- 闭包
- this
- es6
- 代码片段
- 对象拷贝
- Node.js
- 模块
- 库&框架
- Jquery
- 优点
- 组件库
- React
- React原理
- Key的作用
- JSX
- Redux
- Mobx
- 生命周期
- Typescript
- HTML&CSS
- viewport meta
- websocket
- webwork
- web GL
- html全局属性
- iframe
- 页面间通讯
- SVG
- 盒模型
- 输入url到显示的过程
- BFC(块格式化上下文)
- 动画
- CSS 秘密花园
- 前端
- webpack
- 后端
- nginx
- springboot
- 网络
- 跨域
- 网络攻击
- TCP
- Https
- Http状态码
- 缓存策略
- Http2
- 数据结构&算法
- 常用数据结构
- 开发&编码
- Git
- 分支策略
- 基本操作
- VSCode
- 工具
- App开发
- ReactNative
- 项目&业务
- Docker
- 协作工具
- 前端性能优化
- 登录授权
- 软件工程
- 渐进增强和优雅降级
- 计算机基础
- 设计模式
- 单例模式
- 工厂模式
- 发布订阅模式
- 适配器模式
- 代理模式
- 外观模式
- 命令模式
- 桥接模式
- 模板模式
- 职责链模式
- 正则