Listen to events – A simple, small, and performant utility for listening to and attaching native and custom DOM events.
- Liev attaches events internally to a parent element (
document.documentElementper default), so you don't need to attach new event listeners when newHTMLElements's get added to the DOM. - Liev attaches as little event listeners as possible by using event delegation to make your web app more performant (You can read about that idea here).
- Liev decides whether you're listener should be passive or not, so You don't have to think about it (Liev can not look into nested functions, so sometimes you have to set it to
falsewhen you callEvent.preventDefault()).
npm i liev
Look in the dist folder for the build files and more information.
Type: Function
targetHTMLElement The element that triggered the eventeventEvent An object based on Event describing the event that has occurred
Adds a listener
-
typeString A case-sensitive string representing the event type to listen for -
selectorString A string containing one or more selectors to match, use an empty string to match everything -
callbackEventHandler A function that gets executed when an event of the specified type occurs -
optionsObject (optional, default{})options.onceBoolean whether a listener should only be executed once or not (optional, defaultfalse)options.elementHTMLElement the parent element to that the listener is attached (optional, defaultdocument.documentElement)options.passiveBoolean? Whether a listener should be passive or not, looks per default into a stringified version of your callback to decide based on your code if it should be passive or not
Returns Boolean true if added, false if done nothing
Removes a listener that was added through the "on" method
-
typeString The type that was used on the "on" method -
selectorString The selector that was used on the "on" method -
callbackEventHandler The function that was used on the "on" method -
optionsObject (optional, default{})options.onceBoolean The value that was used on the "on" method (optional, defaultfalse)options.elementHTMLElement The element that was used on the "on" method (optional, defaultdocument.documentElement)options.passiveBoolean? The value that was used on the "on" method
Returns Boolean true if removed, false if done nothing
Emits an event from an element
eventString A case-sensitive string representing the event type to emit (can, or ideally should be, a custom one)elementHTMLElement The element from that the event is detached (optional, defaultdocument.documentElement)detailany an info to send with the event (optional, defaultnull)
Returns Boolean true if emitted, false if done nothing
- Thanks Chris Ferdinandi for teaching about that way of adding event listeners: https://gomakethings.com/why-event-delegation-is-a-better-way-to-listen-for-events-in-vanilla-js/
- Thanks Sebastian De Deyne for this little inspiring utility: https://sebastiandedeyne.com/javascript-framework-diet/event-delegation/