Форум

Методология

Инструментарий

Платформа

Сообщество

Взаимодействие блоков и элементов

В рамках БЭМ-методологии блоки и элементы следует разрабатывать так, чтобы свести к минимуму зависимость состояний одних сущностей от других. Однако на практике идеал полной независимости блоков недостижим.

Взаимодействие блоков и элементов может быть реализовано:

  • с помощью подписки на БЭМ-события;
  • с помощью непосредственного вызова методов других экземпляров или статических методов класса;
  • через проверку состояний одного экземпляра из другого.

Примечание Не используйте DOM-события для организации взаимодействия между экземплярами. DOM-события следует использовать только во взаимодействиях экземпляра со своим DOM-узлом.

Для реализации взаимодействия блоков или элементов i-bem.js предоставляет API:

Доступ к классам блоков и элементов

Классы блоков и элементов, можно получить через модульную систему ym. Это же верно и для блоков и элементов без DOM-представления.

Доступ к классам блоков и элементов необходим для:

Пример

Блок button наследуется от базового блока control:

modules.define('button', ['i-bem-dom', 'control'], function(provide, bemDom, Control) {

provide(bemDom.declBlock(this.name, Control, {}));

});
Если вы заметили ошибку или хотите чем-то дополнить статью, вы всегда можете или написать нам об этом на Гитхабе, или поправить статью с помощью prose.io.