Comment faire pour supprimer complètement un dialogue sur fermer
Lorsqu'une opération ajax échoue, je créer un nouveau div avec les erreurs puis de le montrer comme un dialogue. Lorsque la boîte de dialogue est fermée, je voudrais détruire complètement et retirez le div de nouveau. Comment puis-je faire cela? Mon code ressemble à quelque chose comme ceci pour le moment:
$('<div>We failed</div>')
.dialog(
{
title: 'Error',
close: function(event, ui)
{
$(this).destroy().remove();
}
});
Lorsque j'exécute ce la boîte de dialogue s'affiche correctement, mais quand j'ai fermer la boîte de dialogue est toujours visible dans le code html (à l'aide de FireBug). Ce qui me manque ici? Quelque chose que j'ai oublié?
Mise à jour: Viens de remarquer que mon code me donne une erreur dans la console de firebug.
$(this).détruire n'est pas une fonction
Quelqu'un capable de m'aider?
Mise à jour: Si je fais juste $(this).remove()
au lieu de cela, le point est retiré de l'html. Mais il est entièrement retiré de la DOM? Ou dois-je en quelque sorte besoin d'appeler qui détruisent la fonction première ainsi?
Vous devez vous connecter pour publier un commentaire.
Cela va détruire la boîte de dialogue, puis supprimer la div qui a été "hébergement" de la boîte de dialogue complètement du DOM
.destroy
supprime l'extérieur balisage ajouté par le framework d'INTERFACE (barre de titre, closebutton, resizebar etc). C'est peut-être ce que vous voulez dire par accueil..empty()
. Ensuite, vous pouvez le réutiliser, mais si vous les remplissez de nouveau le contenu offcourse.destroy
nécessaire? Ne pas retirer l'élément de détruire la boîte de dialogue?$(this).empty();
juste avant destruction de la boîte de dialogue, puis retrait de la div. Cela réduit le temps de vous pourrait avoir à attendre pour zéro.Pourquoi voulez-vous supprimer?
Si c'est pour l'empêcher de plusieurs instances en cours de création, alors il suffit d'utiliser l'approche suivante...
Et lorsque l'erreur se produit, vous ne...
cette correctifs pour de vrai
C'est travaillé pour moi
Cheers!
PS: j'ai eu un peu le même problème et l'approche ci-dessus résolu.
$(this).dialog("close");
, la boîte de dialogue ne serait tout simplement pas s'en aller. jQuery est parfois très étrange.Un vilain solution qui fonctionne comme un charme pour moi:
Vous pouvez faire l'utilisation
J'utilise cette fonction dans tous mes js projets
Vous l'appelez:
hideAndResetModals("#IdModalDialog")
Vous pouvez définir si: