conversant/ad-libs.js

View on GitHub
lib/dom/addEventListener.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var addEventListener = function (element, eventName, callback) {
    var removeEventListener;

    if (element && element.addEventListener) {
        element.addEventListener(eventName, callback, false);
        removeEventListener = function() {
            element.removeEventListener(eventName, callback, false);
        };
    } else if (element && element.attachEvent) {
        element.attachEvent('on' + eventName, callback);
        removeEventListener = function() {
            element.detachEvent('on' + eventName, callback);
        };
    } else {
        removeEventListener = function() {};
    }

    return removeEventListener;
};

/**
 * @module addEventListener
 * @desc Add an event listener to the element, which will execute the given callback.
 * @param {Element} element
 * @param {String} eventName
 * @param {Function} callback
 * @returns {Function} returns a function that, when executed, will remove the event listener from the element
 * @example
 * ```js
 * var addEventListener = require('adlibs/lib/dom/addEventListener');
 *
 * addEventListener(el, 'onLoad', cb);
 *
 * ```
 */
module.exports = addEventListener;