Здравствуйте!
Вытащил модальное окно из Bootstrap. Но нужно, обязательно(!) чтобы само окно было обернуто в два дива, как в моей верстке. При таком расскладе не работает закрытие модального окна по клику по спец. области .modal-backdrop. Почему? Помогите пожалуйста это исправить. Что нужно изменить в js?
В DOM он создается когда модальное окно открывается, а стили я и правда забыл дописать. Но на рабочем примере у меня на пк, стили написаны и тут 100% дело в последовательности, то есть к структуре. Всему виной два дива который я добавил, как вы и писали в предю сообщении
iCoderXXI: Нет, я в js не силен. Этот код очень завязан на структуре модального окна. Можно было бы наверное поменять селекторы с backdrop на .modal__table, но в коде есть функция которая создает backdrop. В общем не по силам мне это.
lavezzi1: я так понимаю Вы больше по дизайну. Я пока к бутстрапу только присматриваюсь, так-что с ходу решения не скажу. Опишите суть проблемы подробнее, что конкретно не срабатывает? Я подозреваю что модальное окно должно закрываться при клике на затеняющий блок?
Андрей: Все верно понимаете.
Задача: закрытие модального окна при клике за его пределами. В стандартном исполнение бутстрапа при открытие окна создается класс .backdrop с position: fixed и z-index ровно под окно, что делает его кликабельным при открытом модальном окне. Когда оборачиваешь все в дивы (как в моем случае), этот вариант с .backdrop перестает работать.
lavezzi1: да я их там вижу, просто говорю же с бутстрапом пока не очень знаком, поэтому уточнил. В общем modal__cell ловит клик вне модала, боюсь что там переделывать кода слишком заморочно, насколько вот прям непреодолимо нужно обязательно завернуть модал в эти 2 элемента?
lavezzi1: у вас, как было написано в первом каменте, table и cell перекрывают всю область видимости и находятся поверх дропа... Надо действительно либо на них повесить отлов эвента, либо если возможно уменьшить их размер до размера модала, чтобы клик дроп ловил...
lavezzi1: Суть проблемы в том, что модал в таком случае является потомком обертки, и либо надо всунуть бэкдроп внутрь обертки так же (по дефолту он закидывается к body в 71-й строке, еще в 185-й строке и возможно в других местах), либо же ловить клик не бэкдропом, а оберткой...
Андрей: Я понял. Спасибо за уделенное время в любом случае. В очередной раз понял что с бутстрапом лучше не пользоватся. Ибо код очень завязан на их верстке и очень быстро приходит в неподдерживаемый вид https://gist.github.com/iAdramelk/d328b73c72cab92ef95f