Skip to content

Instantly share code, notes, and snippets.

@justin-endler
Last active October 4, 2016 13:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save justin-endler/6d0edd08d97e847ccdf6 to your computer and use it in GitHub Desktop.
Save justin-endler/6d0edd08d97e847ccdf6 to your computer and use it in GitHub Desktop.
MutationObserver: Listen Indefinitely On Changing Element
// support multiple browsers
// http://stackoverflow.com/questions/2844565/is-there-a-jquery-dom-change-listener/11546242#11546242
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var elementId = 'some-id';
// instantiate initial observer
var observer = new MutationObserver(observeIndefinitely(elementId));
observer.observe(document.getElementById(elementId), {
// expensive, only use what's needed of these
attributes: true,
childList: true,
subtree: true,
characterData: true
});
function observeIndefinitely (id) {
return function (mutations, observer) {
// do stuff...
observer.disconnect();
// re-select the element and set up a subsequent observer
var nextObserver = new MutationObserver(observeIndefinitely(id));
nextObserver.observe(document.getElementById(id), {
// expensive, only use what's needed of these
attributes: true,
childList: true,
subtree: true,
characterData: true
});
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment