var div = $('div.foo');
// новейшие браузеры (ИЕ 11+)
var observerConfig = {
attributes: true // отслеживаем только изменения атрибутов
};
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
switch (mutation.attributeName) {
case 'class':
alert('у ноды поменялся класс');
break;
default:
alert('у ноды поменялся атрибут ' + mutation.attributeName);
}
});
});
observer.observe(div[0], bserverConfig);
// =============================
// более старые браузеры (ИЕ 9+)
div.on('DOMAttrModified', function(e) {
alert('у ноды поменялся атрибут ' + e.originalEvent.attrName);
});
// =============================
setTimeout(function() {
div.addClass('test');
}, 5000);