Есть два блока которые должны ловить события третьего блока:
Блок который по какой-то причине не ловит события
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