src/js/glightbox.js
function addEvent(eventName, {
    onElement,
    withCallback,
    avoidDuplicate = true,
    once = false,
    useCapture = false} = { }, thisArg) {
    let element = onElement || []
    if (utils.isString(element)) {
        element =  document.querySelectorAll(element)
    }
    function handler(event) {
        if (utils.isFunction(withCallback)) {
            withCallback.call(thisArg, event, this)
        }
        if (once) {
            handler.destroy();
        }
    }
    handler.destroy = function() {
        each(element, (el) => {
            const events = getNodeEvents(el, eventName, handler);
            if (events.found) { events.all.splice(events.evt, 1); }
            if (el.removeEventListener) el.removeEventListener(eventName, handler, useCapture)
        })
    }
    each(element, (el) => {
        const events = getNodeEvents(el, eventName, handler);
        if (el.addEventListener && (avoidDuplicate && !events.found) || !avoidDuplicate) {
            el.addEventListener(eventName, handler, useCapture)
            events.all.push({ eventName: eventName, fn: handler});
        }
    })
    return handler
}
function addEvent(eventName, {
    onElement,
    withCallback,
    avoidDuplicate = true,
    once = false,
    useCapture = false} = { }, thisArg) {
    let element = onElement || []
    if (utils.isString(element)) {
        element =  document.querySelectorAll(element)
    }
    function handler(event) {
        if (utils.isFunction(withCallback)) {
            withCallback.call(thisArg, event, this)
        }
        if (once) {
            handler.destroy();
        }
    }
    handler.destroy = function() {
        each(element, (el) => {
            const events = getNodeEvents(el, eventName, handler);
            if (events.found) { events.all.splice(events.evt, 1); }
            if (el.removeEventListener) el.removeEventListener(eventName, handler, useCapture)
        })
    }
    each(element, (el) => {
        const events = getNodeEvents(el, eventName, handler);
        if (el.addEventListener && (avoidDuplicate && !events.found) || !avoidDuplicate) {
            el.addEventListener(eventName, handler, useCapture)
            events.all.push({ eventName: eventName, fn: handler});
        }
    })
    return handler
}
function addEvent ( eventName , { onElement , withCallback , avoidDuplicate = true , once = false , useCapture = false } = { } , thisArg ) { let element = onElement || [ ] if ( utils . isString ( element ) ) { element = document . querySelectorAll ( element ) } function handler ( event ) { if ( utils . isFunction ( withCallback ) ) { withCallback . call ( thisArg , event , this ) } if ( once ) { handler . destroy ( ) ; } } handler . destroy = function ( ) { each ( element , ( el ) => { const events = getNodeEvents ( el , eventName , handler ) ; if ( events . found ) { events . all . splice ( events . evt , 1 ) ; } if ( el . removeEventListener ) el . removeEventListener ( eventName , handler , useCapture ) } ) } each ( element , ( el ) => { const events = getNodeEvents ( el , eventName , handler ) ; if ( el . addEventListener && ( avoidDuplicate && ! events . found ) || ! avoidDuplicate ) { el . addEventListener ( eventName , handler , useCapture ) events . all . push ( { eventName : eventName , fn : handler } ) ; } } ) return handler }
Add Event
Add an event listener

@param {string} eventName
@param {object} detials
Add Event Add an event listener