reeller
Version:
Flexible, powerful and modern library for creating the running horizontal blocks effect, also known as ticker or the «marquee effect».
45 lines (41 loc) • 1.08 kB
JavaScript
export default class Base {
/**
* Base class.
*/
constructor() {
this.events = {};
}
/**
* Attach an event handler function.
*
* @param {string} event Event name.
* @param {function} callback Callback.
*/
on(event, callback) {
if (!(this.events[event] instanceof Array)) this.events[event] = [];
this.events[event].push(callback);
}
/**
* Remove an event handler.
*
* @param {string} event Event name.
* @param {function} [callback] Callback.
*/
off(event, callback) {
if (callback) {
this.events[event] = this.events[event].filter((f) => f !== callback);
} else {
this.events[event] = [];
}
}
/**
* Execute all handlers for the given event type.
*
* @param {string} event Event name.
* @param params Extra parameters.
*/
trigger(event, ...params) {
if (!this.events[event]) return;
this.events[event].forEach((f) => f.call(this, this, ...params));
}
}