Когда операция 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');
$(dialogElement).empty();
$(dialogElement).remove();
это фиксирует его для реального
Уродливое решение, которое работает как прелесть для меня:
$("#mydialog").dialog(
open: function(){
$('div.ui-widget-overlay').hide();
$("div.ui-dialog").not(':first').remove();
}
});
Вы можете использовать
$(dialogElement).empty();
$(dialogElement).remove();
Это сработало для меня
$('<div>We failed</div>')
.dialog(
{
title: 'Error',
close: function(event, ui)
{
$(this).dialog("close");
$(this).remove();
}
});
Ура!
PS: У меня была несколько схожая проблема, и вышеупомянутый подход разрешил ее.
$(this).dialog("close");
диалог просто не исчезнет. Время от времени jQuery очень странный.
.destroy
удаляет внешнюю разметку, добавленную каркасом пользовательского интерфейса (заголовок, кнопка закрытия, панель изменения размера и т. Д.). Возможно, это то, что вы подразумевали под хозяином .