Skip to content

Instantly share code, notes, and snippets.

@IgorGavrilenko
Last active August 26, 2021 15:13
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 IgorGavrilenko/dfd11a7cad6f3b2046d3607fda27be73 to your computer and use it in GitHub Desktop.
Save IgorGavrilenko/dfd11a7cad6f3b2046d3607fda27be73 to your computer and use it in GitHub Desktop.
обертка элементов
// ready (MutationObserver)
(function(win) {
'use strict';
var listeners = [],
doc = win.document,
MutationObserver = win.MutationObserver || win.WebKitMutationObserver,
observer;
function ready(selector, fn) {
listeners.push({
selector: selector,
fn: fn
});
if (!observer) {
observer = new MutationObserver(check);
observer.observe(doc.documentElement, {
childList: true,
subtree: true
});
}
check();
}
function check() {
for (var i = 0, len = listeners.length, listener, elements; i < len; i++) {
listener = listeners[i];
elements = doc.querySelectorAll(listener.selector);
for (var j = 0, jLen = elements.length, element; j < jLen; j++) {
element = elements[j];
if (!element.ready) {
element.ready = true;
listener.fn.call(element, element);
}
}
}
}
win.ready = ready;
})(this);
// wrapFunc
var wrapFunc = function (param_1, param_2) {
ready(param_1, function(element) {
var wrapper = document.createElement('div');
this.parentNode.insertBefore(wrapper, this);
wrapper.appendChild(this);
wrapper.classList.add(param_2);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment