Skip to content

Instantly share code, notes, and snippets.

@jjcodes78
Created September 2, 2016 02:39
Show Gist options
  • Save jjcodes78/bc4140b19667cf344e3c12c8690d765d to your computer and use it in GitHub Desktop.
Save jjcodes78/bc4140b19667cf344e3c12c8690d765d to your computer and use it in GitHub Desktop.
EventListener snippet
const EventListener = {
/**
* Listen to DOM events during the bubble phase.
*
* @param {DOMEventTarget} target DOM element to register listener on.
* @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
* @param {function} callback Callback function.
* @return {object} Object with a `remove` method.
*/
listen (target, eventType, callback) {
if (target.addEventListener) {
target.addEventListener(eventType, callback, false)
return {
remove () {
target.removeEventListener(eventType, callback, false)
}
}
} else if (target.attachEvent) {
target.attachEvent('on' + eventType, callback)
return {
remove () {
target.detachEvent('on' + eventType, callback)
}
}
}
}
}
export default EventListener
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment