Когда операция ajax завершается неудачно, я создаю новый div с ошибками, а затем показываю его в виде диалога. Когда диалоговое окно закрыто, я хотел бы полностью уничтожить и снова удалить div. Как я могу это сделать? Мой код выглядит примерно так:
$('<div>We failed</div>')
.dialog(
{
title: 'Error',
close: function(event, ui)
{
$(this).destroy().remove();
}
});
Когда я запускаю это, диалоговое окно отображается правильно, но когда я закрываю его, диалоговое окно все еще видно в html (используя FireBug). Что мне здесь не хватает? Что-то я забыл?
Обновление: только что заметил, что мой код выдает ошибку в консоли Firebug.
$ (this) .destroy не является функцией
Кто-нибудь может мне помочь?
Обновление: если я делаю только $(this).remove()
вместо этого, элемент удаляется из HTML. Но полностью ли он удален из DOM? Или мне как-то нужно сначала вызвать эту функцию уничтожения?
.empty()
. Затем вы можете использовать его повторно, если вы снова заполнили содержимое, конечно.destroy
необходимым? Разве удаление элемента также не разрушит диалог?Почему вы хотите удалить это?
Если это предотвращает создание нескольких экземпляров, просто используйте следующий подход ...
И когда ошибка происходит, вы бы сделали ...
источник
это исправляет это по-настоящему
источник
Это работает для меня
Ура!
PS: у меня была несколько похожая проблема, и вышеуказанный подход решил ее.
источник
$(this).dialog("close");
, диалог просто не исчезнет. Время от времени jQuery очень странный.Уродливое решение, которое работает для меня как очарование:
источник
Вы можете использовать
источник
Я использую эту функцию во всех моих проектах JS
Вы называете это: hideAndResetModals ("# IdModalDialog")
Вы определяете, если:
источник