<div class="x"></div>
所以,如果类值变为“x y”或“y”,如何在此div上添加一个侦听器来触发事件,我可以使用jquery吗?
我想要的是检查这个元素是否有新的更新,这个更新可能会发生而不会触发任何事件,如(点击或鼠标悬停,......),它可以定期更改,比如得到一个来自服务器端的新更新,例如添加新类或向此div添加新内容,以便我可以添加一个侦听器来检查是否可以对此元素进行任何更新
答案 0 :(得分:1)
您正在寻找的是MutationObserver
在此处阅读 - https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
根据您的浏览器支持要求,您可能需要使用框架。签出codepen:
http://codepen.io/anon/pen/NxzJWY(代码直接来自MDN参考)
代码转储:
// select the target node
var target = document.querySelector('#element');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
document.write(mutation.type);
document.write('<br />');
console.log(mutation);
});
});
// configuration of the observer:
var config = { attributes: true, childList: false, characterData: false };
// pass in the target node, as well as the observer options
observer.observe(target, config);
target.className = 'test'; // change this class and watch the output from the observe callback above
注意:回调会返回对每个&#34;变种的引用&#34;并且每个突变都返回对有关突变的一大堆数据的引用。检查浏览器控制台以检查变异对象。