46 lines
1 KiB
JavaScript
46 lines
1 KiB
JavaScript
|
|
let ready = false;
|
|
|
|
$(function() {
|
|
ready = true;
|
|
});
|
|
|
|
var r$ = function(callback) {
|
|
if (ready) {
|
|
callback();
|
|
} else {
|
|
$(function() {
|
|
callback();
|
|
});
|
|
}
|
|
}
|
|
|
|
function observe(containerSelector, elementSelector, callback) {
|
|
r$(() => {
|
|
|
|
$(containerSelector + ' ' + elementSelector).each(function (_, e) {
|
|
let me = $(e);
|
|
callback(me);
|
|
});
|
|
|
|
var onMutationsObserved = function(mutations) {
|
|
mutations.forEach(function(mutation) {
|
|
if (mutation.addedNodes.length) {
|
|
var elements = $(mutation.addedNodes).find(elementSelector);
|
|
for (var i = 0, len = elements.length; i < len; i++) {
|
|
let me = elements[i];
|
|
me = $(me);
|
|
callback(me);
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
var target = $(containerSelector)[0];
|
|
var config = { childList: true, subtree: true };
|
|
var MutationObserver = window.MutationObserver;
|
|
var observer = new MutationObserver(onMutationsObserved);
|
|
observer.observe(target, config);
|
|
});
|
|
}
|