Détection de changement de classe sans setInterval
j'ai un div
il y a des classes supplémentaires ajoutées programmatiquement. Comment puis-je détecter le changement de nom de classe sans utiliser ce setInterval
mise en œuvre?
setInterval(function() {
var elem = document.getElementsByClassName('original')[0];
if (elem.classList.contains("added")) { detected(); }
}, 5500);
MutationObserver?
8
demandé sur
mm8
2017-02-08 22:05:29
1 réponses
Vous pouvez utiliser un mutation observateur. Il est tout à fait largement pris en charge de nos jours.
var e = document.getElementById('test')
var observer = new MutationObserver(function (event) {
console.log(event)
})
observer.observe(e, {
attributes: true,
attributeFilter: ['class'],
childList: false,
characterData: false
})
setTimeout(function () {
e.className = 'hello'
}, 1000)
<div id="test">
</div>
9
répondu
motanelu
2017-02-08 19:34:54