Когда операция 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? Или мне как-то нужно сначала вызывать эту функцию уничтожения?
$(this).dialog('destroy').remove()
Это уничтожит диалоговое окно, а затем полностью удалит div, который "размещал" диалоговое окно, из DOM
Почему вы хотите его удалить?
Если это необходимо для предотвращения создания нескольких экземпляров, просто используйте следующий подход ...
$('#myDialog')
.dialog(
{
title: 'Error',
close: function(event, ui)
{
$(this).dialog('close');
}
});
И когда возникает ошибка, вы бы сделали ...
$('#myDialog').html("Ooops.");
$('#myDialog').dialog('open');