Saya memiliki kotak dialog modal bootstrap yang ingin saya tunjukkan pada awalnya, kemudian ketika pengguna mengklik pada halaman, itu menghilang. Saya memiliki yang berikut ini:
$(function () {
$('#modal').modal(toggle)
});
<div class="modal" id='modal'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Error:</h3>
</div>
<div class="modal-body">
<p>Please correct the following errors:</p>
</div>
</div>
</div>
Modal ditampilkan pada awalnya, tetapi tidak ditutup ketika diklik di luar modal. Selain itu, area konten tidak berwarna abu-abu .. Bagaimana saya bisa mendapatkan modal untuk ditampilkan pada awalnya, lalu tutup setelah pengguna mengklik di luar area? Dan bagaimana saya bisa mendapatkan latar belakang menjadi abu-abu seperti di demo?
$("#yourModal").modal()
atau$('.modal').modal()
?Jawaban:
Taruh
modal('toggle')
bukannyamodal(toggle)
sumber
untuk menutup modal bootstrap, Anda dapat meneruskan 'sembunyikan' sebagai opsi ke metode modal sebagai berikut
Silakan lihat biola yang bekerja di sini
bootstrap juga menyediakan acara yang dapat Anda kaitkan ke fungsionalitas modal , seperti jika Anda ingin memecat suatu peristiwa ketika modal telah selesai disembunyikan dari pengguna, Anda dapat menggunakan hidden.bs.modal event Anda dapat membaca lebih lanjut tentang metode modal dan acara di sini di Dokumentasi
Jika tidak ada metode di atas yang berfungsi, beri id ke tombol tutup Anda dan memicu klik pada tombol tutup.
sumber
toggle
simpan overlay dan bukan solusi. Anda harus selalu menggunakanshow
atauhide
.atau
harus bekerja.
Tetapi jika tidak ada yang berhasil, Anda dapat memanggil tombol tutup modal secara langsung:
sumber
$('#modal').modal('hide')
namun saya bisa menutupnya menggunakan$('#modal').modal('toggle')
tetapi menampilkan bilah gulir vertikal setelah ditutup. Jadi bagi saya$('#modal').hide()
bekerja dengan sempurna tetapi saya ingin tahu apakah itu akan membuat masalah? Dan saya coding di dalam$('#modal .close').click()
jadi saya tidak berpikir saya bisa menggunakannya untuk menutup modal.ini bekerja untuk saya:
gunakan modal tautan ini tutup
sumber
Menjalankan panggilan ini melalui kelas
($(".my-modal"))
tidak akan berfungsi.sumber
Coba ini
sumber
ini cukup bagus dan juga berfungsi dalam sudut 2
sumber
$('#modal').modal('toggle');
tidak berpengaruh.Lima sen saya untuk yang satu ini adalah bahwa saya tidak ingin harus menargetkan modal bootstrap dengan id dan melihat karena seharusnya hanya ada satu modal pada saat berikut ini harus cukup memadai untuk menghapus modal karena beralih bisa berbahaya :
sumber
<body>
, memiliki kelas yang ditambahkan padanya yang harus dikembalikan juga. Jawaban terbaik adalah menggunakan'hide'
metode ini.Dalam beberapa keadaan kesalahan pengetikan bisa menjadi penyebabnya. Misalnya, pastikan Anda memiliki:
dan tidak
Perhatikan double "ss" pada contoh kedua yang akan menyebabkan tombol Close gagal.
sumber
Kami dapat menutup pop-up modal dengan cara berikut:
sumber
$('.modal.in').modal('hide');
gunakan kode di atas untuk menyembunyikan latar belakang modal jika Anda menggunakan beberapa modal pop dalam satu halaman.
sumber
$('.modal').modal('hide');
akan dilakukan.sumber
sumber
$('#DeleteModal').modal('hide');
relevan di sini?kamu bisa menggunakan;
sumber
Menggunakan modal.hide hanya akan menyembunyikan modal. Jika Anda menggunakan overlay di bawah modal, itu masih ada di sana. gunakan panggilan klik untuk benar-benar menutup modal dan menghapus hamparan.
sumber
Cara lain untuk melakukan ini adalah pertama-tama Anda menghapus kelas modal-terbuka, yang menutup modal. Kemudian Anda menghapus latar belakang modal kelas yang menghilangkan penutup modal keabu-abuan.
Kode berikut dapat digunakan:
sumber
Tambahkan tombol dengan modal
data-dismiss="modal"
dan sembunyikan tombol dengandisplay: none
. Ini akan terlihat seperti apaSekarang ketika Anda ingin menutup modal Secara terprogram hanya memicu acara klik pada tombol itu, yang tidak terlihat oleh pengguna
Di Javascript Anda dapat memicu klik pada tombol itu seperti ini:
sumber
Kode ini berfungsi dengan baik bagi saya untuk menutup modal (saya menggunakan bootstrap 3.3)
sumber
Dalam kasus saya, halaman utama dari mana bootstrap modal dipicu mulai tidak merespons setelah menggunakan
$("#modal").modal('toggle');
cara, tetapi mulai merespons dengan cara berikut:sumber
Ini bekerja dengan baik
Namun, ketika Anda memiliki banyak modals yang saling menumpuk satu sama lain, itu tidak efektif, jadi, ini berfungsi
sumber
Setelah beberapa tes, saya menemukan bahwa untuk modal bootstrap perlu menunggu beberapa saat sebelum mengeksekusi
$(.modal).modal('hide')
setelah mengeksekusi$(.modal).modal('show')
. Dan saya menemukan dalam kasus saya, saya memerlukan setidaknya 500 milidetik interval antara keduanya.Jadi ini adalah ujian dan solusi saya:
sumber
Anda dapat melihat referensi ini tetapi jika tautan ini telah dihapus, baca deskripsi ini:
Panggil modal dengan id myModal dengan satu baris JavaScript:
Pilihan
Opsi dapat dilewatkan melalui atribut data atau JavaScript. Untuk atribut data, tambahkan nama opsi ke data- , seperti pada data-backdrop = "" .
Metode
.modal (opsi)
Mengaktifkan konten Anda sebagai modal. Menerima objek opsi opsional.
.modal ('beralih')
Beralih modal secara manual. Kembali ke pemanggil sebelum modal benar-benar telah ditampilkan atau disembunyikan (yaitu sebelum acara yang ditampilkan.bs.modal atau hidden.bs.modal).
.modal ('show')
Membuka modal secara manual. Kembali ke penelepon sebelum modal benar-benar ditampilkan (yaitu sebelum peristiwa yang ditampilkan.bs.modal terjadi).
.modal ('sembunyikan')
Menyembunyikan modal secara manual. Kembali ke pemanggil sebelum modal benar-benar disembunyikan (yaitu sebelum peristiwa hidden.bs.modal terjadi).
.modal ('handleUpdate')
Atur kembali posisi modal secara manual jika ketinggian modal berubah saat terbuka (yaitu jika bilah gulir muncul).
.modal ('buang')
Hancurkan modal elemen.
Acara
Kelas modal Bootstrap memaparkan beberapa peristiwa untuk terhubung ke fungsionalitas modal. Semua peristiwa modal dipecat di modal itu sendiri (yaitu di **). Ketikkan Deskripsi
sumber
Selain itu, Anda dapat "mengklik" pada 'x', yang menutup dialog. Misalnya:
$(".ui-dialog-titlebar-close").click();
sumber
Dalam kasus saya, saya menggunakan tombol untuk menunjukkan modal
Jadi dalam kode saya, untuk menutup modal (yang memiliki id = 'my-modal-to-show') Saya memanggil fungsi itu (dalam skrip Angular):
Jika saya memanggil $ (modalId) .modal ('hide') itu tidak berfungsi dan saya tidak tahu mengapa
PS: dalam modal saya, saya mengkodekan elemen tombol dengan kelas .close juga
sumber
beberapa kali solusi tidak berfungsi sehingga Anda harus menghapus dengan benar di kelas dan menambahkan tampilan css: tidak ada secara manual.
sumber