1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-10-04 03:52:39 +02:00
Files
BezierInfo-2/lib/custom-element/lib/enrich.js
2020-08-03 18:27:33 -07:00

33 lines
846 B
JavaScript

function enrich(element) {
if (!element) return element;
element.__listeners = {};
element.listen = function (evtNames, handler) {
if (!evtNames.map) evtNames = [evtNames];
evtNames.forEach((evtName) => {
element.addEventListener(evtName, handler);
if (!element.__listeners[evtName]) {
element.__listeners[evtName] = [];
}
element.__listeners[evtName].push(handler);
});
}.bind(element);
element.ignore = function (evtNames, handler) {
if (!evtNames.map) evtNames = [evtNames];
evtNames.forEach((evtName) => {
if (!handler) {
return element.__listeners[evtName].forEach((h) =>
element.removeEventListener(evtName, h)
);
}
element.removeEventListener(evtName, handler);
});
}.bind(element);
return element;
}
export { enrich };