码迷,mamicode.com
首页 > 其他好文 > 详细

MutationObserver监听DOM元素结构变化和属性变化实例

时间:2016-10-24 20:28:57      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:构造   list   包括   div   历史   回调   next   监听   target   


 1 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;//浏览器兼容
 2 var config = { attributes: true, childList: true}//配置对象
 3 $("要监听的DOM元素").each(function(){
 4    var _this = $(this);
 5    var observer = new MutationObserver(function(mutations) {//构造函数回调
 6       mutations.forEach(function(record) {
 7          if(record.type == "attributes"){//监听属性
 8         //do any code
 9          }
10          if(record.type == ‘childList‘){//监听结构发生变化
11               //do any code
12          }
13       });
14    });
15    observer.observe(_this[0], config);
16 });

配置对象config属性

  • childList:子元素的变动
  • attributes:属性的变动
  • characterData:节点内容或节点文本的变动
  • subtree:所有下属节点(包括子节点和子节点的子节点)的变动
  • attributeFilter: 监听制定属性[attrName]

注:subtree不可以单独使用,需和其它属性配合;


停止监听观察
observer.disconnect();

清除历史监听记录

observer.takeRecord

 

record返回对象的属性
  • type:观察的变动类型(attribute、characterData或者childList)。
  • target:发生变动的DOM对象。
  • addedNodes:新增的DOM对象。
  • removeNodes:删除的DOM对象。
  • previousSibling:前一个同级的DOM对象,如果没有则返回null。
  • nextSibling:下一个同级的DOM对象,如果没有就返回null。
  • attributeName:发生变动的属性。如果设置了attributeFilter,则只返回预先指定的属性。
  • oldValue:变动前的值。这个属性只对attribute和characterData变动有效,如果发生childList变动,则返回null。

 

MutationObserver监听DOM元素结构变化和属性变化实例

标签:构造   list   包括   div   历史   回调   next   监听   target   

原文地址:http://www.cnblogs.com/scot/p/5994070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!