@forest-js/core
Version:
A tiny, functional DOM engine with explicit update and real DOM.
30 lines • 953 B
JavaScript
import { ensureMeta } from "../dom";
import { createUtility } from "./core";
/**
* @function addEvent
* @description Attaches event listeners to an element.
* Allows specifying event types and handlers.
*
* @template E - Element type.
* @template K - Event key.
* @param type - Event type.
* @param handler - Event handler.
* @param options - Event options.
* @returns Utility function for adding event listeners.
* @example
* ```ts
* const onClick = addEvent("click", (e) => console.log(e.currentTarget))(MyElement);
* ```
*/
export const addEvent = (type, handler, options) => createUtility((el) => {
const meta = ensureMeta(el);
if (!meta.listeners)
meta.listeners = {};
if (meta.listeners[type]) {
el.removeEventListener(type, meta.listeners[type]);
}
meta.listeners[type] = handler;
el.addEventListener(type, meta.listeners[type], options);
return el;
});
//# sourceMappingURL=event.js.map