Denis Kandrov
от Denis Kandrov
~1 мин для прочтения

Тэги

  • js
  • observer

На прошлом проекте для себя нашёл вот такую конструкцию:

var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var elem = document.getElementById("some-id");

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (mutation.type == "attributes") {
      console.log("attributes changed");
      console.log(mutation);
      //debugger;
    }
  });
});

observer.observe(elem, {
  attributes: true //configure it to listen to attribute changes
});

Использовал её, чтобы понять кто меняет атрибуты у элементов. Думаю матёрые js-ники и так это умеют делать, но мне пригождалось в отладке, т.к. проект был огромный.