Войти с помощью github
Форум /

Собираюсь попробовать бэм на вкус и постепенно ознакамливаюсь с документацией по разным бэм технологиям. Ознакомился с документацией i-bem. И возник список вопросов. Надеюсь, что получу на них ответы и заранее благодарю каждого, кто поучаствует в этом. 1) При осуществление поиска элементов внутри блока, есть ли защита от следующего момента: предположим, что у нас есть блок .b-carousel(карусель со стрелочками для листания вперед и назад). У блока есть элемент .b-carousel__item. И представим ситуацию, что одна карусель вложена в другую, то есть вот такая картина:

<ul class="b-carousel"><li class="b-carousel__item"></li><ul class="b-carousel"><li class="b-carousel__item"></li></ul></ul>

В javascript-е этого компонента осуществляется поиск элемента b-carouselitem внутри блока. Но поскольку у нас одна карусель вложена в другую, то будут найдены как элементы блока, так и элементы вложенного блока. Есть ли защита, чтобы поиск шел вот так, если изъясняться в терминах css селекторов и jQuery: `$(block).find(':not(.b-carousel) .b-carouselitem, >.b-carousel__item');`? 2) Есть ли в бэм защита от повторной инициализации блока? То есть, например, блок уже проиницилизирован, затем где-то вызывается повторная инициализация и блок инициализируется заного и на элементы блока второй раз вешаются обработчики событий. 3) По-умолчанию инициализация блоков происходит по событию document ready. Впоследствие, если куда-то на страницу, например, аяксом подгрузился html, то мы можем вызвать bem.init(полагаю в качестве параметра методу init передается DOM узел, внутри которого будет производиться поиск бэм блоков). Скажите, может есть стадартный, общий для всех блоков метод, которому передаешь параметром DOM элемент куда вставить html и вторым параметром собственно сам html для вставки, при этом этот метод после вставки html-я сам будет вызывать bem.init на DOM узле, куда вставлялся html. Это бы автоматизировало процесс, не нужно было бы при каждой вставке html-я вызывать bem.init.