Я использую библиотеку Twitter Bootstrap в новом проекте, и я хочу, чтобы часть страницы обновляла и получала последние данные json при закрытии режима. Я не вижу этого нигде в документации, кто-то может указать мне или предложить решение.
Две проблемы с использованием документированных методов
$('#my-modal').bind('hide', function () {
// do something ...
});
Я прикрепляю класс «hide» к модалу уже, чтобы он не отображался при загрузке страницы, чтобы он загружался дважды
даже если я удаляю класс скрытия и устанавливаю идентификатор элемента в display:none
и добавляю console.log("THE MODAL CLOSED");
к функции выше, когда я нажимаю близко, ничего не происходит.
источник
data-dismiss="modal"
(например, кнопка закрытия), но не работает, когда я нажимаю на область черного фона, окружающую модал. Модал закрывается, но затем его нельзя открыть, пока страница не обновится. Я пробовал оба'hidden.bs.modal'
и'hide.bs.modal'
безрезультатно.$('#myModal').modal({ backdrop: 'static', keyboard: false });
образом, модальное окно не будет закрываться ни при нажатии на серую область, ни при нажатии клавиши Esc.Bootstrap 4
Посмотрите этот JSFiddle для рабочего примера:
https://jsfiddle.net/6n7bg2c9/
Смотрите раздел модальных событий в документации здесь:
https://getbootstrap.com/docs/4.3/components/modal/#events
источник
Запуск Bootstrap 3 ( редактировать: то же самое в Bootstrap 4 ), есть 2 случая, когда вы можете запускать события:
1. Когда начинается модальное событие «скрыть»
2. Когда модальное событие «скрыть» закончено
Ссылка: http://getbootstrap.com/javascript/#js-events
источник
Вместо «live» вам нужно использовать событие «on», но назначить его объекту документа:
Использование:
источник
источник
Bootstrap предоставляет события, которые вы можете подключить к модалу , например, если вы хотите запустить событие, когда модал завершил скрытие от пользователя, вы можете использоватьсобытие hidden.bs.modal, например:
Проверьте рабочую скрипку здесь, узнайте больше о модальных методах и событиях здесь, в Документации.
источник
Bootstrap 4:
hide.bs.modal : это событие вызывается сразу после вызова метода экземпляра скрытия.
hidden.bs.modal : это событие вызывается, когда модал завершил скрытие от пользователя (будет ожидать завершения переходов CSS).
источник
Я бы сделал это так:
Остальное уже написано другими. Я также рекомендую прочитать документацию: jquery - по методу
источник
Я видел много ответов, касающихся событий начальной загрузки, например,
hide.bs.modal
которые запускаются при закрытии модального режима.Существует проблема с этими событиями: любые всплывающие окна в модале (всплывающие окна, всплывающие подсказки и т. Д.) Будут вызывать это событие.
Есть другой способ поймать событие, когда модальное закрытие.
Bootstrap использует
in
класс, когда модал открыт. Очень важно использоватьhidden
событие, так как классin
все еще определяется, когда событиеhide
инициируется.Это решение не будет работать в IE8, так как IE8 не поддерживает
:not()
селектор Jquery .источник
У меня были те же проблемы, что и у некоторых
Вы должны поместить это внизу страницы, размещение вверху никогда не запускает событие.
источник
$("#myModal")
вызывается селектор jQuery, HTML-элемент с идентификаторомmyModal
потребностей должен существовать в DOM. Таким образом, вы могли бы иметь этот код в верхней части страницы, но поместить в$(document).on("ready", function(){ ... });
(или аналогичную функцию, которая вызывается после заполнения DOM элементом).если вы хотите запустить функцию при каждом закрытии режима, вы можете использовать этот метод,
Так что вам не нужно каждый раз указывать модальные идентификаторы.
источник