Ketika operasi ajax gagal, saya membuat div baru dengan kesalahan dan kemudian menampilkannya sebagai dialog. Ketika dialog ditutup, saya ingin menghancurkan dan menghapus div sekali lagi. Bagaimana saya bisa melakukan ini? Kode saya terlihat seperti ini saat ini:
$('<div>We failed</div>')
.dialog(
{
title: 'Error',
close: function(event, ui)
{
$(this).destroy().remove();
}
});
Ketika saya menjalankan ini kotak dialog muncul dengan benar, tetapi ketika saya menutupnya dialog masih terlihat di html (menggunakan FireBug). Apa yang kulewatkan di sini? Sesuatu yang saya lupa?
Pembaruan: Hanya memperhatikan kode saya memberi saya kesalahan di konsol pembakar.
$ (ini) .destroy bukan fungsi
Adakah yang bisa membantu saya?
Pembaruan: Jika saya melakukan $(this).remove()
sebaliknya, item tersebut dihapus dari html. Tetapi apakah itu benar-benar dihapus dari DOM? Atau apakah saya perlu memanggil fungsi penghancuran terlebih dahulu?
sumber
.empty()
. Maka Anda dapat menggunakannya kembali, jika Anda mengisi kembali konten offcourse.destroy
perlu? Tidak akan menghapus elemen juga menghancurkan dialog?Mengapa Anda ingin menghapusnya?
Jika itu untuk mencegah beberapa kejadian dibuat, maka cukup gunakan pendekatan berikut ...
Dan ketika kesalahan terjadi, Anda akan melakukan ...
sumber
ini memperbaikinya nyata
sumber
Ini berhasil untuk saya
Bersulang!
PS: Saya punya masalah yang agak mirip dan pendekatan di atas menyelesaikannya.
sumber
$(this).dialog("close");
dialog, dialog tidak akan hilang begitu saja. jQuery terkadang sangat aneh.Solusi jelek yang bekerja seperti pesona bagi saya:
sumber
Anda bisa menggunakannya
sumber
Saya menggunakan fungsi ini di semua proyek js saya
Anda menyebutnya: hideAndResetModals ("# IdModalDialog")
Anda menentukan apakah:
sumber