1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-08-27 02:05:34 +02:00
Files
BezierInfo-2/docs/js/graphics-element/lib/enrich.js
2020-11-06 11:32:44 -08:00

31 lines
827 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 };