Mutation Observer儲存原有的值
關於Mutation Observer基本知識可以參閱以下兩篇文章:
(1).Mutation Observer優點一章節。
(2).Mutation Observer用法一章節。
observe()方法第二個引數,不但可以規定監聽的型別,也可以規定是否儲存變化前的值。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼Observer.observe(ul, { attributes: true, attributeOldValue: true });
上面程式碼規定監聽ul元素屬性的變化,並記錄變化前的屬性值;可以儲存的舊值型別如下:
(1).attributeOldValue:布林值,規定監聽屬性變化時,是否記錄變動前的屬性值。
(2).characterDataOldValue:布林值,規定監聽characterData變化時,是否記錄變動前的文字內容。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload = function () { var ul = document.querySelector("ul"); var Observer = new MutationObserver(function (mutations, instance) { mutations.forEach(function (mutation) { console.log(mutation); }); }); Observer.observe(ul, { attributes: true, attributeOldValue: true }); ul.setAttribute("class","a"); ul.setAttribute('class', "b"); } </script> </head> <body> <div id="box"> <ul> <li>螞蟻部落</li> </ul> </div> </body> </html>
上面程式碼首先給ul元素設定了class屬性,然後再修改此屬性。
控制檯截圖如下:
對於characterDataOldValue也是同樣的原理,這裡不做介紹了。
相關文章
- Mutation Observer用法Server
- Mutation Observer優點Server
- 監聽Dom節點變化 - Mutation ObserverServer
- MySQL Innodb 儲存結構 & 儲存Null值 解析MySqlNull
- 華為雲OBS物件儲存服務:值得擁有的貼心的儲存管家物件
- 不破壞原加密儲存的儲存解密(轉)加密解密
- 實現鍵值對儲存(二):以現有鍵值對儲存為模型模型
- 原創:oracle 儲存過程Oracle儲存過程
- 一個數值儲存核取方塊的值
- canvas 儲存與還原狀態Canvas
- MySQL null值儲存,null效能影響MySqlNull
- 數值資訊的機器級儲存
- 數值在Oracle的內部儲存Oracle
- 簡單的鍵值儲存測試
- 用鍵值儲存實現MVCC模式MVC模式
- 實現鍵值對儲存(一):什麼是鍵值對儲存,為什麼要實現它
- [原創]儲存過程效能測試儲存過程
- 殺死所有的指定資料庫的程式的儲存過程資料庫儲存過程
- MySQL 的 NULL 值是怎麼儲存的?MySqlNull
- SAS 數值儲存方式和精度問題
- 提升Raft以加速分散式鍵值儲存Raft分散式
- 進階篇_map容器(儲存鍵值對)
- 索引特性之儲存列值及ROWID索引
- 實現鍵值對儲存(0):目錄
- MYSQL 資料型別儲存-數值型MySQL 資料型別
- 塊儲存 檔案儲存 物件儲存物件
- 向已有的excel表中追加資料儲存(表頭一致)Excel
- 981-基於時間的鍵值儲存
- 棧是按照順序且連續儲存值
- 淺談索引序列之是否可以儲存NULL值?索引Null
- shell中獲取儲存過程返回值儲存過程
- 實現鍵值對儲存(四):API設計API
- 移動加密那點事兒_值儲存加密加密
- TIDB儲存TiKV的鍵值對資料TiDB
- 981. 基於時間的鍵值儲存
- 子元件獲取父元件的值,將這個值作為狀態值儲存元件
- oracle中的數值資料儲存格式分析(ZT)Oracle
- MySQL的鍵值儲存以及與MongoDB的對比MySqlMongoDB