-
Notifications
You must be signed in to change notification settings - Fork 26
Description
Добрый день. Как правило содержимое для модальных окон является динамическим. Например есть список товаров и надо выводить вопрос точно ли пользователь хочет удалить данный товар с указанием наименования товара. То есть нельзя сразу добавить содержимое модалки на страницу. Как правило, но не всегда модалку из HTML страницы сразу можно удалить. Модалки нужны разной ширины. Очень часто требуется выводить модальное окно не просто по клику по кнопке, а как результат каких-либо действий в js скрипте, после удачного или неудачного ajax запроса и тд. То есть модалка должна вызываться из js скрипта с указанием параметров - содержимое окна, заголовок, ширина модалки, действия после кликов на кнопки. Html модалки должен генерироваться на лету и вставляться на страницу. Что-то вроде bootbox'а . Я для bootstrap'а 5 делал похожую вешь. Вот примеры того как вызывается моя модалка:
//Пример спрашивающей модалки:
let bootbox = new Bootbox2({
message: 'Вы хотите удалить?',
title: 'Подвердите свои действия',
animation: false,
buttons: [
{
label: 'Отмена',
className: 'btn btn-success',
callback: function() {
bootbox.close(); //Закрыть модалку
}
},
{
label: 'Удалить',
className: 'btn btn-danger',
callback: function() {
//Функция удаления
bootbox.close();
}
}, //Еще кнопки
]
});
// Пример информационного окна:
let bootbox = new Bootbox2({
message: 'Hello, World!!'
});Bootbox2.zip - мой скрипт для bootstrap'а 5
Бывают случаи, когда поверх одной модалки надо открыть ещё одну. Например нам нужно в модалке отобразить список закаченных файлов, чтобы пользователь выбрал один из них с возможностью загрузить ещё файлы. В случае неуспешности загрузки надо вывести пользователю сообщение.
Чтобы сразу вешалось событие на кнопку или ссылку, открытие определённой модалки это не нужно. Это удобно только верстальщикам чтобы выводить "рыбный" текст. Всегда можно сделать тоже самое через onclick .