## 事件機制
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
- 協作工具
- 前端性能優化
- 登錄授權
- 軟件工程
- 漸進增強和優雅降級
- 計算機基礎
- 設計模式
- 單例模式
- 工廠模式
- 發布訂閱模式
- 適配器模式
- 代理模式
- 外觀模式
- 命令模式
- 橋接模式
- 模板模式
- 職責鏈模式
- 正則