Господа, ещё давно возник такой вопрос. Как я понял оно не происходит, и единственный путь - это прокидывание события через всю цепочку блоков. Если ошибаюсь - прошу руку помощи.
Господа, ещё давно возник такой вопрос. Как я понял оно не происходит, и единственный путь - это прокидывание события через всю цепочку блоков. Если ошибаюсь - прошу руку помощи.
@YLeight БЭМ-события всплывают полностью аналогично DOM-событиям. Если вот этот раздел документации не подойдет в качестве руками помощи — готов ответить на уточняющие вопросы.
Действительно, RTFM. Вопрос исчерпан. @tadatuta, благодарен
Ан нет. В теории всё понятно, но на практике подобная схема не заработала
По факту есть блок содержащий контейнер с кнопками (button) В js этого блока имею
При клике ничего не происходит В блоке button имею код
Полагаю собака зарыта в button, вопрос - что делаю не так
О. Поменялся способ подписки... @tadatuta А по старинке
Будет работать?
Да, дело действительно в коде
button
. Должно быть что-то вроде:@kompolom
Да, будет. Но новый вариант гарантирует зависимости.
@tadatuta Просто хочется понять как всё устроено =) Есть другие блоки, которые хочется использовать таким образом.
Всё равно что то упускаю, событие _onClick отрабатывает и происходит emit('click'), но Button.on(...) не ловит его(
Вариант #kompolom рабочий Но хотелось бы разобраться с вариантом из документации. Если косяк на лицо, прошу ткнуть пальцем =)
Чтобы разобраться, хорошо бы видеть весь код проекта. В общем случае подписка через
Block.on(context, eventName, callback,)
совершенно точно должна работать.мало кто знает но в
bem-core
есть еще и это ;) https://github.com/bem/bem-core/blob/v2/common.blocks/events/__channels/events__channels.ru.md@tadatuta странно, у меня тоже новым способом не работает подписка.
примеры кода в студию!
https://gist.github.com/kompolom/b2fe985aece1daa2caaa#file-media-attach_select_radio-js-L14 Пожалуйста!
Товарищи! А по e.target родительский элемент как-то можно вытащить?
@Maximario ну, например,
e.target.domElem.parent()
@kompolom У меня все ок.