#javascript #jquery #css #sass #bootstrap-5
Вопрос:
Я пытаюсь отобразить подстрекателя spinner во время загрузки модального контента с помощью модального загрузчика v5 и jQuery.Я создаю пример, но у него есть некоторые проблемы.
Подстрекатель прядильщика больше не отображается, пока я закрыл модальный режим, который он отображает только в первый раз.
$(window).on("load", function() {
if ($(".modal").length) {
$(".modal").modal("show");
$(".modal").on("shown.bs.modal", function(e) {
e.preventDefault();
if ($(".spinner").length) {
$(".spinner").delay(3000).fadeOut(500, function() {
$(this).remove();
});
}
});
$(document).on("click", ".btn", function(e) {
$(".modal").on("shown.bs.modal", function(e) {
e.preventDefault();
if ($(".spinner").length) {
$(".spinner").delay(3000).fadeOut(500);
}
});
$(".modal").on("hidden.bs.modal", function(e) {
e.preventDefault();
if ($(".spinner").length) {
$(".spinner").delay(3000).fadeOut(500);
}
});
});
}
});
Живой пример: https://codepen.io/themes4all/pen/oNWeYzp
Ответ №1:
Проблемы
$(this).remove()
— полностью удаляет спиннер. Таким образом, элемент spinner больше не будет доступен в показанном модальном режиме.- Ненужный код и условия удалены
Решение
Вместо удаления элемента spinner просто скройте его с помощью d-none
класса
$(function () {
$(".modal").on("show.bs.modal", function (e) {
$(".spinner")
.removeClass("d-none")
.delay(3000)
.fadeOut(500, function () {
$(this).addClass("d-none");
});
}).modal("show");
});
Комментарии:
1. как насчет отображения модального при загрузке страницы?
2. @Angusdev Уже отображает модальный режим при загрузке страницы
3. нет, я говорю о том, что когда я посещаю страницу в первый раз, модальное отображение без нажатия кнопки после того, как я ее закрыл, я могу открыть ее, нажав на кнопку
4. попробуйте увидеть мой пример codepen.io/themes4all/pen/oNWeYzp
5. @Angusdev Проверьте ответ правильно. есть ссылка на кодовую ссылку