我需要在从一个元素中删除一个类时调用一个函数,我无法控制何时删除该类.
目前我可以通过使用setTimeout使其工作,所以它是这样的:
function checkClassRemoval() {
if (!$('.myElement').hasClass('mySecondClass')) {
// run function
}
}
setTimeout(checkClassRemoval, 1000);
Run Code Online (Sandbox Code Playgroud)
除了每秒运行一次检查之外,是否有更好的方法来清除班级?
您可以使用MutationObserver类.它允许在发生此更改时订阅特定的DOM元素更改和触发事件:
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutationRecord) {
console.log('style changed!');
});
});
var target = document.getElementById('someId');
observer.observe(target, { attributes : true, attributeFilter : ['style', 'className'] });
Run Code Online (Sandbox Code Playgroud)
有关此对象的支持,请参阅canIuse.com