Skip to content

Instantly share code, notes, and snippets.

@aymxdd
Last active February 19, 2021 14:19
Show Gist options
  • Save aymxdd/e3e120e65314c319f9002eed2b6c7d8e to your computer and use it in GitHub Desktop.
Save aymxdd/e3e120e65314c319f9002eed2b6c7d8e to your computer and use it in GitHub Desktop.
removeEventListener with anonymous function helper
export default class EventUtils {
constructor() {
this.events = []
this.addEventListener = this.addEventListener.bind(this)
this.removeEventListeners = this.removeEventListeners.bind(this)
}
addEventListener(event, callback) {
this.events.push({e: event, c: callback})
const i = this.events.length - 1
window.addEventListener(this.events[i].e, this.events[i].c)
}
removeEventListeners() {
for (let i = 0; i < this.events.length; i++) {
window.removeEventListener(this.events[i].e, this.events[i].c)
}
this.events = []
}
}
// Usage example
const events = new EventUtils()
// Define some events
events.addEventListener('click', () => console.log('Hello !!'))
events.addEventListener('mousemove', e => console.log(`x: ${e.clientX}, y: ${e.clientY}`))
// Remove all events
events.removeEventListeners()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment