Saya menggunakan lib Bootstrap Twitter pada proyek baru dan saya ingin sebagian halaman menyegarkan dan mengambil data json terbaru tentang modal tutup. Saya tidak melihat ini di mana saja dalam dokumentasi yang dapat seseorang tunjukkan kepada saya atau menyarankan solusi.
Dua masalah dengan menggunakan metode yang didokumentasikan
$('#my-modal').bind('hide', function () {
// do something ...
});
Saya melampirkan kelas "sembunyikan" ke modal sehingga tidak ditampilkan pada halaman memuat sehingga akan memuat dua kali
bahkan jika saya menghapus kelas sembunyikan dan mengatur id elemen display:none
dan menambahkan console.log("THE MODAL CLOSED");
ke fungsi di atas ketika saya menekan tutup tidak ada yang terjadi.
sumber
data-dismiss="modal"
(seperti tombol tutup), tetapi tidak berfungsi ketika saya mengklik area latar belakang hitam di sekitar modal. Modal ditolak, tetapi tidak dapat dibuka kembali sampai halaman diperbarui. Saya sudah mencoba keduanya'hidden.bs.modal'
dan'hide.bs.modal'
tidak berhasil.$('#myModal').modal({ backdrop: 'static', keyboard: false });
Dengan begitu, modal tidak akan menutup saat mengklik area abu-abu, atau saat menekan tombol Esc.Bootstrap 4
Lihat JSFiddle ini untuk contoh kerja:
https://jsfiddle.net/6n7bg2c9/
Lihat bagian Acara Modal dokumen di sini:
https://getbootstrap.com/docs/4.3/components/modal/#events
sumber
Mulai Bootstrap 3 ( edit: masih sama di Bootstrap 4 ) ada 2 contoh di mana Anda dapat menjalankan peristiwa, yaitu:
1. Ketika modal "sembunyikan" acara dimulai
2. Ketika modal "sembunyikan" acara selesai
Ref: http://getbootstrap.com/javascript/#js-events
sumber
Sebagai ganti "live" Anda harus menggunakan "on" event, tetapi tetapkan ke objek dokumen:
Menggunakan:
sumber
sumber
Bootstrap menyediakan acara yang dapat Anda kaitkan ke modal , seperti jika Anda ingin memecat suatu peristiwa ketika modal telah selesai disembunyikan dari pengguna Anda dapat menggunakanacara hidden.bs.modal seperti ini
Lihat biola yang berfungsi di sini, baca lebih lanjut tentang metode modal dan acara di Dokumentasi
sumber
Bootstrap 4:
hide.bs.modal : Peristiwa ini dipecat segera ketika metode contoh sembunyikan telah dipanggil.
hidden.bs.modal : Acara ini dipecat ketika modal telah selesai disembunyikan dari pengguna (akan menunggu transisi CSS selesai).
sumber
Saya akan melakukannya seperti ini:
Selebihnya sudah ditulis oleh orang lain. Saya juga merekomendasikan membaca dokumentasi: metode jquery - on
sumber
Saya telah melihat banyak jawaban mengenai peristiwa bootstrap seperti
hide.bs.modal
yang dipicu ketika modal ditutup.Ada masalah dengan peristiwa itu: sembulan di modal (popover, tooltips, dll) akan memicu peristiwa itu.
Ada cara lain untuk menangkap acara ketika modal ditutup.
Bootstrap menggunakan
in
kelas saat modal terbuka. Sangat penting untuk menggunakanhidden
event karena kelasin
masih didefinisikan ketika eventhide
dipicu.Solusi ini tidak akan berfungsi di IE8 karena IE8 tidak mendukung
:not()
pemilih Jquery .sumber
Saya mengalami masalah yang sama dengan beberapa orang
Anda harus menempatkan ini di bagian bawah halaman, menempatkannya di bagian atas tidak pernah menyalakan acara.
sumber
$("#myModal")
dipanggil elemen HTML dengan IDmyModal
kebutuhan ada di DOM. Jadi Anda bisa memiliki kode ini di bagian atas halaman tetapi ditempatkan di dalam$(document).on("ready", function(){ ... });
(atau fungsi serupa yang dipanggil setelah DOM diisi dengan elemen).jika Anda ingin memecat suatu fungsi pada setiap penutupan modal, Anda dapat menggunakan metode ini,
Jadi, Anda tidak perlu menentukan id modal setiap waktu.
sumber