diff --git a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.js b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.js index 1293f56bb..a52718752 100644 --- a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.js +++ b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.js @@ -37,9 +37,9 @@ var EVENT_PREFIX = '__bem__', var event = EVENT_PREFIX + params.bindEntityCls.getEntityName() + (typeof e === 'object'? e instanceof events.Event? - ' ' + e.type : + ':' + e.type : bemInternal.buildModPostfix(e.modName, e.modVal) : - ' ' + e); + ':' + e); eventMethod === 'on' && // TODO: count usage and remove on 'un' !eventsInUse[event] && diff --git a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js index 00332bd78..fc81b2a58 100644 --- a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js +++ b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js @@ -44,7 +44,7 @@ describe('DOM events', function() { 'js' : { 'inited' : function() { this._domEvents() - .on('click', spy1) + .on('click keypress', spy1) .on('click', spy2) .on('click', data, wrapSpy(spy3)) .once('click', spy4); diff --git a/common.blocks/i-bem-dom/__events/i-bem-dom__events.js b/common.blocks/i-bem-dom/__events/i-bem-dom__events.js index ab393ef99..4b64977cf 100644 --- a/common.blocks/i-bem-dom/__events/i-bem-dom__events.js +++ b/common.blocks/i-bem-dom/__events/i-bem-dom__events.js @@ -52,6 +52,14 @@ var undef, * @returns {EventManager} this */ on : function(e, data, fn, _fnCtx, _isOnce) { + if(typeof e === 'string' && e.indexOf(' ') > -1) { + e.split(' ').forEach(function(event) { + this.on(event, data, fn, _fnCtx, _isOnce); + }, this); + + return this; + } + var params = this._params, event = this._eventBuilder(e, params, 'on'); @@ -114,6 +122,14 @@ var undef, un : function(e, fn, _fnCtx) { var argsLen = arguments.length; if(argsLen) { + if(typeof e === 'string' && e.indexOf(' ') > -1) { + e.split(' ').forEach(function(event) { + this.un(event, fn, _fnCtx); + }, this); + + return this; + } + var params = this._params, event = this._eventBuilder(e, params, 'un');