Как полностью удалить диалоговое окно закрытия

Когда операция ajax терпит неудачу, я создаю новый div с ошибками, а затем показываю его как диалог. Когда диалог закрыт, я хотел бы полностью уничтожить и удалить div снова. Как я могу это сделать? Мой код выглядит примерно так:

$('
We failed
') .dialog( { title: 'Error', close: function(event, ui) { $(this).destroy().remove(); } });

Когда я запускаю это, диалоговое окно отображается правильно, но когда я его закрываю, диалог все еще отображается в html (используя FireBug). Что мне здесь не хватает? Что-то я забыл?

Обновление: только что заметил, что мой код дает мне ошибку в консоли firebug.

$ (this) .destroy не является функцией

Кто-нибудь может мне помочь?

Обновление: если я вместо этого просто $(this).remove() , элемент удаляется из html. Но полностью ли он удален из DOM? Или мне почему-то нужно сначала вызвать эту функцию уничтожения?

 $(this).dialog('destroy').remove() 

Это приведет к уничтожению диалога, а затем удалит div, который полностью «разместил» диалог из DOM

Почему вы хотите удалить его?

Если нужно предотвратить создание нескольких экземпляров, просто используйте следующий подход …

 $('#myDialog') .dialog( { title: 'Error', close: function(event, ui) { $(this).dialog('close'); } }); 

И когда возникает ошибка, вы будете делать …

 $('#myDialog').html("Ooops."); $('#myDialog').dialog('open'); 
 $(dialogElement).empty(); $(dialogElement).remove(); 

это исправляет это для реального

Уродливое решение, которое работает как прелесть для меня:

 $("#mydialog").dialog( open: function(){ $('div.ui-widget-overlay').hide(); $("div.ui-dialog").not(':first').remove(); } }); 

Вы можете использовать

 $(dialogElement).empty(); $(dialogElement).remove(); 

Это сработало для меня

 $('
We failed
') .dialog( { title: 'Error', close: function(event, ui) { $(this).dialog("close"); $(this).remove(); } });

Ура!

PS: У меня была несколько схожая проблема, и вышеупомянутый подход решил ее.

Я использую эту функцию во всех моих проектах js

Вы называете это: hideAndResetModals (“# IdModalDialog”)

Вы определяете, если:

 function hideAndResetModals(modalID) { $(modalID).modal('hide'); clearValidation(modalID); //You implement it if you need it. If not, you can remote this line $(modalID).on('hidden.bs.modal', function () { $(modalID).find('form').trigger('reset'); }); } 
Interesting Posts

Микропроцессорность DateTime.DayOfWeek

После обновления до Google Play Services 9.0.0 приложение зависает в DynamiteModulesC

java.io.FileNotFoundException: этот файл не может быть открыт в качестве дескриптора файла; он, вероятно, сжат

Не получать уведомления о тостах. Как устранить неполадки?

Различие между структурой и союзом

Оптимальное расположение файла подкачки в системе с двумя SSD-дисками, с системным приводом быстрее, чем вторичный диск

Поддерживает ли Stream.forEce порядок столкновений последовательных streamов?

Преобразование CSS не работает на встроенных элементах

Сколько энергии использует жесткий диск?

URL-адрес контента не отображает изображение в браузере Firefox

Коллекция VBA: список ключей

Как предотвратить блокировку файлов Excel по умолчанию?

Процесс автоматического перезапуска при сбое

Весь VPN-трафик проходит через VPN-сервер или это только для проверки подлинности?

Как отобразить уведомление в панели администратора о активации плагина?

Давайте будем гением компьютера.