@glidejs/glide
Version:
Glide.js is a dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more
57 lines (49 loc) • 1.18 kB
JavaScript
import { isString } from '../../utils/unit'
export default class EventsBinder {
/**
* Construct a EventsBinder instance.
*/
constructor (listeners = {}) {
this.listeners = listeners
}
/**
* Adds events listeners to arrows HTML elements.
*
* @param {String|Array} events
* @param {Element|Window|Document} el
* @param {Function} closure
* @return {Void}
*/
on (events, el, closure, capture = false) {
if (isString(events)) {
events = [events]
}
for (let i = 0; i < events.length; i++) {
this.listeners[events[i]] = closure
el.addEventListener(events[i], this.listeners[events[i]], capture)
}
}
/**
* Removes event listeners from arrows HTML elements.
*
* @param {String|Array} events
* @param {Element|Window|Document} el
* @return {Void}
*/
off (events, el) {
if (isString(events)) {
events = [events]
}
for (let i = 0; i < events.length; i++) {
el.removeEventListener(events[i], this.listeners[events[i]], false)
}
}
/**
* Destroy collected listeners.
*
* @returns {Void}
*/
destroy () {
delete this.listeners
}
}