Saya memiliki aplikasi di jquery 1.5 dengan dialog berfungsi dengan baik. Meskipun saya memiliki banyak .live handler, saya mengubahnya menjadi .on. Untuk itu, saya harus mengupdate jquery (sekarang 1.8.3 dan jquerui 1.9.1).
Sekarang, saya mendapat: Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'
Berikut kodenya:
Javascript
var opt = {
autoOpen: false,
modal: true,
width: 550,
height:650,
title: 'Details'
};
$(document).ready(function() {
$("#divDialog").dialog(opt);
$("#divDialog").dialog("open");
...
kode html
<div id="divDialog">
<div id="divInDialog"></div>
</div>
Adakah yang tahu mengapa ini mungkin terjadi?
jquery
dialog
jquery-ui-dialog
core-chain.io
sumber
sumber
Jika Anda tidak dapat meningkatkan jQuery dan Anda mendapatkan:
Anda dapat mengatasinya seperti ini:
Atau jika Anda mengontrol tampilan dan mengetahui bahwa tidak ada dialog lain yang harus digunakan sama sekali di seluruh halaman, Anda dapat melakukan:
Saya hanya akan merekomendasikan melakukan ini jika penggunaan
closest
menyebabkan masalah kinerja. Ada kemungkinan cara lain untuk mengatasinya tanpa melakukan penutupan global pada semua dialog.sumber
Saya mendapat kesalahan ini ketika saya hanya memperbarui perpustakaan jquery tanpa memperbarui perpustakaan jqueryui secara paralel. Saya menggunakan jquery 1.8.3 dengan jqueryui 1.9.0. Namun, ketika saya mengupdate jquery 1.8.3 ke 1.9.1 saya mendapatkan error di atas. Ketika saya mengomentari
.close
baris metode menyinggung , itu kemudian melemparkan kesalahan tentang tidak menemukan.browser
di perpustakaan jquery yang tidak digunakan lagi di jquery 1.8.3 dan dihapus dari jquery 1.9.1. Jadi pada dasarnya, pustaka jquery 1.9.1 tidak kompatibel dengan pustaka jquery ui 1.9.0 meskipun halaman unduh ui jquery mengatakan itu berfungsi dengan jquery 1.6+. Pada dasarnya, ada bug yang tidak dilaporkan saat mencoba menggunakan versi yang berbeda dari keduanya. Jika Anda menggunakan versi jquery yang dibundel dengan unduhan jqueryui, saya yakin Anda akan baik-baik saja, tetapi ketika Anda mulai menggunakan versi yang berbeda, Anda keluar jalur dan mendapatkan kesalahan seperti ini. Jadi, singkatnya, kesalahan ini berasal dari versi yang salah cocok (dalam kasus saya).sumber
Jadi Anda menggunakan ini:
dan jika Anda membuka MVC Partial View dalam Dialog, Anda dapat membuat tombol tersembunyi dan peristiwa klik JQUERY dalam indeks:
Kemudian di dalam tampilan parsial html Anda memanggil tombol pemicu klik seperti:
sampai jumpa.
sumber
Jika Anda ingin segera membuka Dialog ketika Dialog diinisialisasi atau halaman sudah siap, Anda juga dapat menyetel parameter
autoOpen
ketrue
dalam objek opsi dialog:Jadi, Anda tidak perlu memanggil dialog `$ (" # divDialog "). (" Open ");
Ketika objek dialog diinisialisasi, dialog secara otomatis terbuka.
sumber
Versi UI jQuery yang baru tidak memungkinkan Anda memanggil metode UI pada dialog yang tidak diinisialisasi. Sebagai solusinya, Anda dapat menggunakan pemeriksaan di bawah ini untuk melihat apakah dialog masih hidup.
sumber
Ini juga beberapa solusi:
sumber
Saya hanya perlu menambahkan ScriptManager ke halaman. Masalah terselesaikan.
sumber
Dalam kasus saya, masalahnya adalah saya telah menelepon
$("#divDialog").removeData();
sebagai bagian dari mengatur ulang data formulir saya dalam dialog.Hal ini mengakibatkan saya menghapus struktur data bernama
uiDialog
yang berarti dialog harus diinisialisasi ulang.Saya mengganti
.removeData()
dengan penghapusan yang lebih spesifik dan semuanya mulai bekerja kembali.sumber
Kasus saya berbeda, gagal karena ruang lingkup ' ini ':
sumber
Saya mendapat pesan kesalahan ini karena saya memiliki tag div pada tampilan parsial, bukan pada tampilan induk
sumber