ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку
logo

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

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

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

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

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

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

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

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

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

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

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

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

Если содержимое модального окна заполняется динамически, например, через 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 в действии