mirror of
https://codeberg.org/vlw/elevent.git
synced 2025-09-13 16:23:40 +02:00
74 lines
No EOL
2 KiB
Markdown
74 lines
No EOL
2 KiB
Markdown
# 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<Event>
|
|
```
|
|
|
|
## 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<Event>, Elevent<class>
|
|
```
|
|
> 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<class> instance
|
|
|
|
elevent.remove(document.querySelector("#specialButton")); // Remove a specific HTMLElement<object> if bound
|
|
elevent.remove(); // Remove ALL currently bound elements
|
|
```
|
|
|
|
## Bind a specific element
|
|
```js
|
|
const elevent = new Elevent("click", null, () => {}); // Empty Elevent<class> 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<Event>, Elevent<class>
|
|
```
|
|
|
|
# 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
|
|
)
|
|
``` |