function on(element, ev, cb, context) {
            for (var _len = arguments.length, args = Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) {
                args[_key - 4] = arguments[_key];
            }

            var _this = this;

            var el = element.el,
                events = ev.split(' '),
                fn = function fn(e) {
                cb.apply(context || _this, [e, element].concat(args));
            };

            events.forEach(function (event) {
                el.addEventListener(event, fn);
            });
            var evt = {
                remove: function remove() {
                    events.forEach(function (event) {
                        return el.removeEventListener(event, fn);
                    });
                    var evts = element._events;
                    evts.splice(evts.indexOf(evt), 1);
                }
            };
            element._events.push(evt);
            return evt;
        }
function on(element, ev, cb, context) {
            for (var _len = arguments.length, args = Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) {
                args[_key - 4] = arguments[_key];
            }

            var _this = this;

            var el = element.el,
                events = ev.split(' '),
                fn = function fn(e) {
                cb.apply(context || _this, [e, element].concat(args));
            };

            events.forEach(function (event) {
                el.addEventListener(event, fn);
            });
            var evt = {
                remove: function remove() {
                    events.forEach(function (event) {
                        return el.removeEventListener(event, fn);
                    });
                    var evts = element._events;
                    evts.splice(evts.indexOf(evt), 1);
                }
            };
            element._events.push(evt);
            return evt;
        }
function on ( element , ev , cb , context ) { for ( var _len = arguments . length , args = Array ( _len > 4 ? _len - 4 : 0 ) , _key = 4 ; _key < _len ; _key ++ ) { args [ _key - 4 ] = arguments [ _key ] ; } var _this = this ; var el = element . el , events = ev . split ( ' ' ) , fn = function fn ( e ) { cb . apply ( context || _this , [ e , element ] . concat ( args ) ) ; } ; events . forEach ( function ( event ) { el . addEventListener ( event , fn ) ; } ) ; var evt = { remove : function remove ( ) { events . forEach ( function ( event ) { return el . removeEventListener ( event , fn ) ; } ) ; var evts = element . _events ; evts . splice ( evts . indexOf ( evt ) , 1 ) ; } } ; element . _events . push ( evt ) ; return evt ; }
Adding DOM Event in to Element  @method on @param {dom.Element} element @param {String} ev @param {Function} cb @param {Object} context @return {Object} { remove() }
Adding DOM Event in to Element