diff --git a/blocks-common/i-bem/i-bem.js b/blocks-common/i-bem/i-bem.js index 5dec2594..e331d00b 100644 --- a/blocks-common/i-bem/i-bem.js +++ b/blocks-common/i-bem/i-bem.js @@ -378,6 +378,18 @@ this.BEM = $.inherit($.observable, /** @lends BEM.prototype */ { * @param {String} modVal1 First modifier value * @param {String} [modVal2] Second modifier value * @param {Boolean} [condition] Condition + * @example + * // before:
+ * icon.toggleMod('size', 'big', 'small'); + * // after:
+ * @example + * // before:
+ * icon.toggleMod('size', 'big', 'small', isNeedBig === false); + * // after:
+ * @example + * // before:
+ * icon.toggleMod('size', 'big', 'small'); + * // after:
* @returns {BEM} */ toggleMod : function(elem, modName, modVal1, modVal2, condition) { @@ -389,6 +401,7 @@ this.BEM = $.inherit($.observable, /** @lends BEM.prototype */ { modName = elem; elem = undefined; } + if(typeof modVal2 == 'undefined') { modVal2 = ''; } else if(typeof modVal2 == 'boolean') { @@ -397,13 +410,15 @@ this.BEM = $.inherit($.observable, /** @lends BEM.prototype */ { } var modVal = this.getMod(elem, modName); - (modVal == modVal1 || modVal == modVal2) && - this.setMod( - elem, - modName, - typeof condition === 'boolean'? - (condition? modVal1 : modVal2) : - this.hasMod(elem, modName, modVal1)? modVal2 : modVal1); + + this.setMod( + elem, + modName, + // если есть condition, тогда не важно текущее значение + typeof condition === 'boolean' ? ( condition ? modVal1 : modVal2 ) + // иначе, если текущее значение "modVal1", значит ставим значение "modVal2" + // и во всех остальных случаях "modVal1" + : ( modVal === modVal1 ) ? modVal2 : modVal1 ); return this; diff --git a/blocks-touch/b-slider/b-slider.js b/blocks-touch/b-slider/b-slider.js index de5b081a..b2e2f053 100644 --- a/blocks-touch/b-slider/b-slider.js +++ b/blocks-touch/b-slider/b-slider.js @@ -64,7 +64,12 @@ _delayedInit: function() { var slider = this, - images = slider.findBlocksInside('b-icon'); + bIcons = slider.findBlocksInside('b-icon'), + icons = slider.findBlocksInside('icon'), + images = slider.findBlocksInside('image'); + + // объединяем все возможные блоки-картинки + images = images.concat(icons, bIcons); // если внутри есть картинки (b-icon), // то отложить инициализацию до момента их полной загрузки,