var body = document.body;
var move = function(e) {
console.log("x: " + e.pageX + " | y: " + e.pageY);
};
body.addEventListener("touchmove", move);
body.addEventListener("mousemove", move);
// и не нужен никакой фабрик-фигабрик
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);