jquery - Mutation Observers与DOMSubtreeModified

问题描述 投票:0回答:2

我使用jquery.min.js的3.2.1版本

我的代码中有这个:

$('#damage1').bind("DOMSubtreeModified",function(){displayIcons();});

但是这行在我的Firefox控制台中导致错误:“不推荐使用Mutation事件。请改用MutationObserver。”

很公平。

在文档中,我将其视为新语法:

new MutationObserver(function callback);

但是,实际上,基于我的基本编码级别,我不知道该怎么做才能有效地替换我弃用的行。

任何帮助,将不胜感激。

jquery deprecated mutation-observers
2个回答
0
投票

DOMSubtreeModified现已折旧。使用MutationObserver下面的代码应该可以解决您的问题。

   $(function() {
   var observer = new MutationObserver(function(e) {displayIcons();});
   observer.observe($('#damage1')[0], {characterData: true, childList: true});
   });

-1
投票

DOMSubtreeModified已被弃用。

// Select the node to observe for changes
var targetNode = document.getElementById('#damage1');  
// targetNode = document.querySelector('#myTable tbody');


// set which changes to observe 
var config = { attributes: true, childList: true, subtree: true };


//create callback function to execute when changes are observed
function diplayIcon(){
    //do something
    alert("mutation observed");}

//Create an observer instance linked to the callback function
var observer = new MutationObserver(displayIcon);

// Start observing the target node for configured mutations(changes)
observer.observe(targetNode, config);

// Later, you can stop observing
//observer.disconnect();
© www.soinside.com 2019 - 2024. All rights reserved.