0.1.1 • Published 3 years ago
liev v0.1.1
Liev
Listen to events – A simple, small, and performant utility for listening to and attaching native and custom DOM events.
Why should You use Liev?
- 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()).
Installation
Using Node:
npm i lievUsing a script tag:
Look in the dist folder for the build files and more information.
API
Table of Contents
EventHandler
Type: Function
Parameters
targetHTMLElement The element that triggered the eventeventEvent An object based on Event describing the event that has occurred
on
Adds a listener
Parameters
typeString A case-sensitive string representing the event type to listen forselectorString A string containing one or more selectors to match, use an empty string to match everythingcallbackEventHandler A function that gets executed when an event of the specified type occursoptionsObject (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
off
Removes a listener that was added through the "on" method
Parameters
typeString The type that was used on the "on" methodselectorString The selector that was used on the "on" methodcallbackEventHandler The function that was used on the "on" methodoptionsObject (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
emit
Emits an event from an element
Parameters
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
Special thanks
- 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/