Coder Social home page Coder Social logo

1natsu172 / register-event-listeners Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 1.05 MB

Utility function to register multiple event listeners

Home Page: https://1natsu172.github.io/register-event-listeners/

License: MIT License

JavaScript 1.37% TypeScript 98.63%
addeventlistener removeeventlistener utility-function

register-event-listeners's Introduction

Codecov

register-event-listeners

Utility function to register multiple event listeners

In other words, utility function that multiple execute addEventListener/removeEventListener


✨ Getting Started

with yarn

yarn add register-event-listeners

or

with npm

npm install register-event-listeners

πŸ’ Usage

import { registerEventListeners } from 'register-event-listeners'

const eventTarget = document.body

const onTouchStart = (event) => console.log(`${event.type} event dispatched.`)
const onTouchMove = (event) => console.log(`${event.type} event dispatched.`)
const onEnd = (event) => console.log(`${event.type} event dispatched.`)

const { register, unRegister } = registerEventListeners(eventTarget, [
  ['touchstart', onTouchStart],
  ['touchmove', onTouchMove, { passive: false }],
  ['touchend', onEnd],
  ['touchcancel', onEnd]
])

// Execute element.addEventListener(s) passed to the argument.
register()

// Now added event listeners. πŸ”ˆ

// Execute element.removeEventListener(s) passed to the argument.
unRegister()

// Now removed event listeners. πŸ”‡

πŸ”₯ APIs

registerEventListeners(element, listeners)

name require type default decstiption
eventTarget βœ“ EventTarget - MDN - EventTarget
listeners βœ“ Array(EventListeners) - MDN - addEventListener

About the 2nd argument(listeners)

The element of the array

Element is same as the format of the argument of addEventListener

That is this πŸ‘‰ [type, listener[, options])]

  • type is event.type.
  • listener is commonly called a handler
  • options is listenerOptions
The 2nd argument should be like this.
[
  ['touchstart', onTouchStart, {capture: true, once: true}],
  ['touchmove', onTouchMove, { passive: false }],
  ['touchend', onEnd],
  ['touchcancel', onEnd]
]

Returns

register

register event listeners. In other words addEventListeners.

unRegister

unRegister event listeners. In other words removeEventListeners.

πŸ’š Running the tests

with Jest.

yarn test

or

npm run test

🏷 Versioning

Use SemVer for versioning. For the versions available, see the tags on this repository.

©️ License

MIT Β© 1natsu172

register-event-listeners's People

Contributors

1natsu172 avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar

register-event-listeners's Issues

2nd argument type(EventListeners) is broken.

Want to provide the types that each different tuple-type elements in array…but there are many bugs ??

  • not infer 2nd element(handler)'s EventType
    • TS side bug? or Wrong my definition?
  • 3rd element(ListenerOptions), object key completion becomes invalid after the second time select
    • maybe TS side bug.

Β―\_(ツ)_/Β―

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.