uswds
Version:
Open source UI components and visual style guide for U.S. government websites
31 lines (25 loc) • 646 B
JavaScript
module.exports = (element, eventTypeString, listener, options) => {
const eventTypes = eventTypeString.split(/\s+/);
const add = () => {
eventTypes.forEach((type) => {
element.addEventListener(type, listener, options);
});
};
const trigger = () => {
const type = eventTypes[0];
const event = document.createEvent('HTMLEvents');
event.initEvent(type, false, true);
element.dispatchEvent(event);
};
const remove = () => {
eventTypes.forEach((type) => {
element.removeEventListener(type, listener, options);
});
};
add();
return {
on: add,
trigger,
off: remove,
};
};