# Elevent Create callback functions for any [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget) dispatched on HTML elements. ```js import { Elevent } from "https://cdn.jsdelivr.net/npm/elevent/src/Elevent.mjs" new Elevent("click", document.querySelector("#myButton"), () => console.log("Button clicked!")); // console: "Button clicked" ``` # Examples ## Bind from a NodeList ```js new Elevent("click", document.querySelectorAll("button"), (event) => console.log(event)); // console: PointerEvent ``` ## Bind with a CSS selector ```js // Bind all elements that match the CSS selector string new Elevent("click", ".css-selector", (event, elevent) => console.log(event, elevent)) // console: PointerEvent, Elevent ``` > New elements added to the DOM with a matching CSS selector will bind automatically ## Remove event listeners ```js const elevent = new Elevent("click", null, () => {}); // Empty Elevent instance elevent.remove(document.querySelector("#specialButton")); // Remove a specific HTMLElement if bound elevent.remove(); // Remove ALL currently bound elements ``` ## Bind a specific element ```js const elevent = new Elevent("click", null, () => {}); // Empty Elevent instance elevent.bind(document.querySelector("#bindMe")); ``` # Neat stuff ## Create a [`once`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#once) event ```js // As a variable const elevent = new Elevent("click", null, () => elevent.remove()); // Anonymous function second argument new Elevent("click", null, (event, elevent) => elevent.remove()); // PointerEvent, Elevent ``` # Description ### `Elevent.constructor` ```ts Elevent.constructor( eventType: string | null target: NodeList | HTMLElement | string | null, callback: CallableFunction ) ``` ### `this.bind()` ```ts this.bind( target: HTMLElement ) ``` ### `this.remove()` ```ts this.remove( target?: HTMLElement ) ```