Detecting class change without setInterval

You can use a mutation observer. It’s quite widely supported nowadays.

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>

Leave a Comment

tech