Skip to content

Instantly share code, notes, and snippets.

@monolithed
Last active August 29, 2015 14:12
Show Gist options
  • Save monolithed/039da80033593d22a910 to your computer and use it in GitHub Desktop.
Save monolithed/039da80033593d22a910 to your computer and use it in GitHub Desktop.
'use strict';
import FastClick from 'FastClick';
var utils = {
parse_events (events) {
return events.split(/[\s,]+/);
}
};
/**
* @class
* @param {Object} element
*/
export default class DOMEvent {
constructor (element) {
this.element = element;
this.events = {};
}
/**
* Set events
*
* @param {Object} events — event/callback
*/
on (events, callback, phase) {
events = utils.parse_events(events);
events.forEach((event) => {
this.events[event] = [ callback, phase ];
this.element.addEventListener(event, callback, phase);
});
}
/**
* Remove event
*
* @param {string} event
*/
off (event) {
this.element.removeEventListener(event, ...this.events[event]);
}
/**
* Trigger event
*
* @param {string} event
* @param {Object} [data]
*/
trigger (event, data) {
var register = new CustomEvent(event, {
detail: data
});
document.dispatchEvent(register);
}
}
document.addEventListener('DOMContentLoaded', () => {
FastClick(document.body);
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment