@KuzmenkoArtem

По каким причинам docuent.addEventListener может не распространятся на модальные окна?

Добавляю обработчик
document.removeEventListener('click', handler);

Обработчик распространяется на весь документ, но не на тело модального (bootstrap) окна, но в тоже время за пределами тела, когда окно открыто (затемнение на бэкграунде) обработчик работает

UPD: Используется данная библиотека https://bootstrap-vue.js.org
Как протестить:
Можно зайти на https://bootstrap-vue.js.org/docs/components/modal...
добавить слушатель document.addEventListener('click', function() {alert('test3')})
Покликать везде, а потом на модальном окне

Похоже что дело конкретно в либе, т.к. на офф сайте все ок https://getbootstrap.com/docs/4.1/components/modal/
Но возможно в особенностях vue.js
  • Вопрос задан
  • 175 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега Vue.js
Смотрим код компонента, и видим, что на содержимое окна вешается обработчик клика, где происходит остановка всплытия:

click: evt => {
  evt.stopPropagation()
  // https://github.com/bootstrap-vue/bootstrap-vue/issues/1528
  this.$root.$emit('bv::dropdown::shown')
}
Ответ написан
Комментировать
5bb48a594c620637517729.png
Дело в этом обработчике, он запрещает всплытие. Точнее разбираться лень сказать сложно, потому что код минифицирован, но если его удалить, всё работает как ожидается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы