Closed egor-a-trubnikov-panov closed 10 years ago
Есть два блока которые должны ловить события третьего блока:
Блок который по какой-то причине не ловит события
BEM.DOM.decl('events', { onSetMod: { 'js': function () { this._invisible(); BEM.DOM.blocks['chek-type-redaktor'].on('change_area', this._invisible, this); BEM.DOM.blocks['chek-type-redaktor'].on('change_events', this._visible, this); } }, _visible: function () { this.setMod("hidden", "false"); }, _invisible: function () { this.setMod("hidden", "true"); } }, { live: false })
Блок который прекрасно ловит события
BEM.DOM.decl('area', { onSetMod: { 'js': function () { BEM.DOM.blocks['chek-type-redaktor'].on('сhange_area', this._visible, this); BEM.DOM.blocks['chek-type-redaktor'].on('сhange_events', this._invisible, this); } }, _visible: function () { this.setMod("hidden", "false"); }, _invisible: function () { this.setMod("hidden", "true"); } }, { live: false })
Блок который генерирует БЕМ события
BEM.DOM.decl('chek-type-redaktor', { onSetMod: { 'js': { 'inited': function () { console.log("chek-type-redaktor active"); } } }, onChange_area: function () { this.trigger('сhange_area'); }, onChange_events: function () { this.trigger('сhange_events'); } }, { live: function () { this.liveBindTo("change-area", 'click', function (e) { this.onChange_area(e); }); this.liveBindTo("change-events", 'click', function (e) { this.onChange_events(e); }); return false; } });
Блоки в bemjson
{ block: 'area', js: true }, { block: 'events', js: true }
В чем причина того то блок events не ловит события блока chek-type-redaktor, а блок area прекрасно ловит?
Строки разные (первый символ), он даже отрисовывается по-разному.
Пруф: http://codepen.io/gorbenko/pen/wGrzE
Есть два блока которые должны ловить события третьего блока:
Блок который по какой-то причине не ловит события
Блок который прекрасно ловит события
Блок который генерирует БЕМ события
Блоки в bemjson
В чем причина того то блок events не ловит события блока chek-type-redaktor, а блок area прекрасно ловит?