event-light

1.0.3 • Public • Published

CircleCI

Elevator Pitch

In 2018, there's really no need for jQuery, however, jQuery came bundled with a few really nice features. One such feature is their namespaced event binding and unbinding mechanism.

const $my_element = $("#root")
$my_element.on("click.listener_one", () => console.log("Number one!")
$my_element.on("click.listener_two", () => console.log("Number two!")

$my_element.click()
//Number one!
//Number two!

$my_element.off("click.listener_one")
$my_element.click()
//Number two!

The purpose of this library is to safely add, track, and remove namespaced events without the unnecessary bloat of jQuery. The API is simple, functional, and takes advantage of WeakMap in order to avoid memory leaks.

Usage

Here's a quick example. I also encourage you to check out the __tests__ directory for other examples.

import { on, off } from "event-light"

const element = document.createElement("div")
on("click.listener_one", element, () => console.log("Number one!"))
on("click.listener_two", element, () => console.log("Number two!"))

element.click()
//Number one!
//Number two!

off("click.listener_one", element)
element.click()
//Number two!

Installation

npm install --save event-light

Package Sidebar

Install

npm i event-light

Weekly Downloads

15

Version

1.0.3

License

MIT

Unpacked Size

15.2 kB

Total Files

12

Last publish

Collaborators

  • robertmenke