ace-diff
Version:
A diff/merging wrapper for Ace Editor built on google-diff-match-patch
25 lines (20 loc) • 597 B
JavaScript
function on(elSelector, eventName, selector, fn) {
const element = (elSelector === 'document') ? document : document.querySelector(elSelector);
element.addEventListener(eventName, (event) => {
const possibleTargets = element.querySelectorAll(selector);
const { target } = event;
for (let i = 0, l = possibleTargets.length; i < l; i += 1) {
let el = target;
const p = possibleTargets[i];
while (el && el !== element) {
if (el === p) {
fn.call(p, event);
}
el = el.parentNode;
}
}
});
}
module.exports = {
on,
};