Size: a a a

2019 February 21

ЕЕ

Евгений Евгений in БЭМ
мне хоть бы в консоль клик вывести)
источник

ЕЕ

Евгений Евгений in БЭМ
в deps ничего добавлять не надо?
источник

ЕЕ

Евгений Евгений in БЭМ
блок нак который я хочу кликнуть там есть
источник

ЕЕ

Евгений Евгений in БЭМ
по сути он выводится,стили применяются
источник

Р

Роман in БЭМ
Итак, предположим, у тебя есть некая кнопка, клик по которой ты хочешь обрабатывать. Это может быть кнопка с каким-то уникальным модификатором, например button_super-action
источник

Р

Роман in БЭМ
А, ну или блок. Если ты сам создал этот блок (а не переиспользуешь его из набора, например, bem-core или bem-components), то всё ещё чуть проще…
источник

ЕЕ

Евгений Евгений in БЭМ
Роман
А, ну или блок. Если ты сам создал этот блок (а не переиспользуешь его из набора, например, bem-core или bem-components), то всё ещё чуть проще…
сам создал блок,внутри него необходимо указать
mods: {type: 'button'}?Ну если это кнопка)
источник

Р

Роман in БЭМ
Допустим, это блок my-block. В директории уровня переопределения у тебя, значит, есть каталог с таким же именем:
./
 common.blocks/
   my-block/
источник

ЕЕ

Евгений Евгений in БЭМ
все верно есть
источник

Р

Роман in БЭМ
И там шаблон (my-block.bemtree.js, my-block.bemhtml.js), стили (my-block.css) и нужен теперь файл с клиентским JS: my-block.js
источник

Р

Роман in БЭМ
источник

Р

Роман in БЭМ
Это и декларация, и сразу инициализация.
источник

И

Ильдар in БЭМ
Запилите уже песочницу
источник

Р

Роман in БЭМ
Там есть фрагмент:
onSetMod: {
 js: {
   inited: function() {
     /* … */
   }
 }
}


Который можно «прочитать» как

При установка модификатора: {
 js: {
   в значении «inited» выполни следующий код {
     /* … */
   }
 }
}
источник

И

Ильдар in БЭМ
Не забываем что у блока должно быть js:true
источник

Р

Роман in БЭМ
Для блоков моддификатор *_js_inited выставляется автоматически, если подключен i-bem.js и у блока в шаблоне прописано
// bemjson
{
 block: 'my-block',
 js: true
}

или
// bemhtml/bemtree
block('my-block').addJs()(true)
источник

Р

Роман in БЭМ
^^^ это а-ля автоматическая инициализация (есть ещё ленивая, она позволяет оптимизировать ОЫ-ресурсы, которые нужно инициализировать не при загрузке страницы, а отложенно)
источник

Р

Роман in БЭМ
т. е., если мы добавляем блоку js: true, то у него при рендере появится ещё один css-класс: i-bem.
источник

Р

Роман in БЭМ
Этот класс срабатывает на DOMReady и активирует все неленивые блоки/элементы — им автоматически добавляется класс *_js_inited, для которого мы и написали (пока ещё не написали) код в onSetMod: { js: { inited: () } }
источник

Р

Роман in БЭМ
Роман
Этот класс срабатывает на DOMReady и активирует все неленивые блоки/элементы — им автоматически добавляется класс *_js_inited, для которого мы и написали (пока ещё не написали) код в onSetMod: { js: { inited: () } }
Т. е. если мы добавим туда console.log(), то он сработает тогда, когда все зависимые файлы будут загружены и готовы.
источник