From b04b5cb9f8a0e7467e7723017fcd8357ea3f4f54 Mon Sep 17 00:00:00 2001 From: Mikhail Korotin Date: Tue, 3 Feb 2015 14:03:59 +0300 Subject: [PATCH 1/2] Init slider after load all picture-blocks. Added pictures blocks (image, icon) to image-array. --- blocks-touch/b-slider/b-slider.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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), // то отложить инициализацию до момента их полной загрузки, From f60caa9732db1f888256418899c89c22716c78d9 Mon Sep 17 00:00:00 2001 From: Mikhail Korotin Date: Wed, 4 Feb 2015 16:18:24 +0300 Subject: [PATCH 2/2] Upgrade i-bem method toggleMod --- blocks-common/i-bem/i-bem.js | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) 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;