Проблема со скрытием модального окна — Bootstrap 3
-
21-12-2019 - |
Вопрос
Я не могу скрыть модальное окно после подтверждения удаления (закрытие работает нормально), поэтому сейчас я пытаюсь ссылаться на него по модальному идентификатору.
Из того, что я читаю, типичный способ скрыть модальное окно: $('#myModal').modal('hide');
Однако, похоже, это не работает для меня, я использовал $('.modal').modal('hide');
и мне интересно, потому ли это, что мне нужно указать идентификатор #
модального окна, но я не уверен, какой «правильный» способ сделать это, если мой идентификатор является @model
атрибут`
Вот моя кнопка
<button class="btn btn-danger col-lg-3 col-lg-offset-3" data-toggle="modal" data-target="#@item.ID" onclick="deleteStart(this)">
Вот мой начальный класс div для моего модального окна
<div class="modal fade" id="@item.ID" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
Вот мой JQuery, который onClick
для моей опции «Подтвердить удаление» (у меня есть несколько попыток в коде)
function deleteFunction(element) {
var newID = $(element).closest("td").find("span.ID").text();
$.post(
'@Url.Action("customDelete", "Show")',
{
'id': newID
},
function (data) { },
"json"
);
$(element).closest("tr").next("tr").remove();
$(element).closest("tr").remove();
//$(element).attr("data-target", "#" + newID).modal('hide');
//$('#newID').modal('hide');
//$('.modal').modal('hide');
$(element).closest("table").toggleClass("table-hover");
$(element).closest("tr").css('background-color', 'initial');
}
ПРИМЕЧАНИЕ:тот var newID
применяется к идентификатору объекта текущего элемента (item.ID
), но поскольку именно такой же установлен и мой модальный идентификатор, разве он не должен работать?
item.ID
это первичный ключ моей модели, поэтому он тоже уникален.
Решение
Зафиксированный!Виновником был модал fade
.
Чтобы заставить это работать, мне пришлось использовать следующее в функции, вызываемой кнопкой «Подтвердить».Это нужно сделать ПЕРЕД чем-либо еще, особенно AJAX.Очевидно, AJAX может испортить некоторые сценарии для модалов, поэтому вам нужно закончить все свои модальные вещи, прежде чем делать другие вещи.
Фрагмент функции
$('#myModal').removeClass('fade');
$('#myModal').modal('hide');