Вызов JavaScript функции при открытии Bootstrap модала

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам требуется запустить функцию перед показом модального окна Bootstrap, используйте событие show.bs.modal:

JS
Скопировать код
$('#yourModal').on('show.bs.modal', function() {
  myFunction(); // Здесь вызываем вашу функцию
});

Обратите внимание, что '#yourModal' соответствует ID модального окна. Функция myFunction выполнится перед открытием модального окна.

Кинга Идем в IT: пошаговый план для смены профессии

Подробное руководство

Вариант выполнения функции после отображения модального окна

Вы можете вызывать функцию сразу после показа модального окна, подписавшись на событие shown.bs.modal:

JS
Скопировать код
$('#yourModal').on('shown.bs.modal', function() {
  console.log("Я – король мира!"); // Введите вашу функцию здесь
});

Для версий Bootstrap до 3.0 вам потребуется использовать событие shown вместо этого.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Обработка динамического содержимого

Если содержимое модального окна заполняется динамически, например, через AJAX, то уместно выбрать делегированную обработку событий:

JS
Скопировать код
$(document).on('shown.bs.modal', '#yourModal', function() {
  console.log("Мама, я динамичен!"); // Определите функцию здесь
});

Обработка закрытия модального окна

Чтобы выполнить дополнительные действия после закрытия модального окна, используйте событие hidden.bs.modal:

JS
Скопировать код
$('#yourModal').on('hidden.bs.modal', function() {
  console.log("Чисто как у свистка!"); // Здесь будет функция очистки
});

Контроль времени выполнения

Выберите событие show.bs.modal, если ваша функция должна выполниться непосредственно перед открытием модального окна:

JS
Скопировать код
$('#yourModal').on('show.bs.modal', function(e) {
  console.log("Заметил айсберг!"); // Функция, которую нужно вызвать перед открытием модального окна
});

Визуализация

Продумав визуализацию, представьте модальное окно Bootstrap в роли театрального занавеса, а функции – как подготовленных работников за кулисами:

Markdown
Скопировать код
Занавес опущен 🎭: Модальное окно закрыто, актёры готовятся к выходу.

Когда занавес поднимается (открывается модальное окно):

Markdown
Скопировать код
🎭🎬: Работники за кулисами (функции) завершают подготовку, вся внимательность – на сцене!

Зрители (пользователи) ожидают начала представления.

Markdown
Скопировать код
Занавес поднят (👏): [Функции приступают к работе]

Дополнительные соображения

События для всех модальных окнах

Вы можете назначить событие на $(window), если управляете всеми модальными окнами одновременно:

JS
Скопировать код
$(window).on('shown.bs.modal', function() {
  console.log("Весь мир – театр, а мы в нём актёры."); // Здесь может быть глобальная функция
});

Отладка через console.log или alert

Вот простой и эффективный способ подтвердить, что ваши функции работают корректно:

JS
Скопировать код
$('#yourModal').on('shown.bs.modal', function() {
  console.log("Не все, кто странствуют, заблудились."); // Сообщение для отладки
});

Чистота кода

Стремьтесь к тому, чтобы ваш код был компактным и функциональным. Каждая строка кода должна нести свою смысловую нагрузку.

Будьте готовы к изменениям

При настройке текущих решений имейте в виду возможность перехода на новые версии и упрощения поддержки ваших модальных взаимодействий.

Полезные материалы

  1. Modal · Bootstrap v5.0
  2. .on() | jQuery API Документация
  3. Наложение нескольких модальных окон — Stack Overflow
  4. Метод EventTarget: addEventListener() — Веб-API | MDN
  5. Bootstrap: работа с модальными окнами
  6. Как использовать модальные окна в Bootstrap 5 — Tutorial Republic
  7. Пример на CodePen — События модального окна Bootstrap в действии
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какое событие нужно использовать, чтобы запустить функцию перед открытием модального окна Bootstrap?
1 / 5