Anonim

Sekiranya anda memprogram dalam Javascript, anda mungkin menghadapi keadaan di mana anda ingin mempunyai menu yang dibuka pada satu klik, dan yang menutup apabila pengguna mengklik di luar menu. Saya telah membangunkan satu cara yang mudah untuk melakukannya. Saya menambah pendengar acara ke badan dokumen. Apabila seseorang mengkliknya, kami mencari id sasaran acara. Jika ia sepadan dengan ID kotak div, maka jangan lakukan apa-apa. Jika tidak, tutup menu.

Mengambil sedikit lagi, adalah tidak cekap untuk meninggalkan pendengar acara klik pada seluruh badan apabila ia tidak digunakan. Dalam kes ini, jika menu belum dibuka lagi, tidak ada alasan untuk mendengarkan klik di luar menu. Tambah pendengar acara dalam panggil balik div yang ditunjukkan. Dalam vein yang sama, apabila div disembunyikan lagi, alih keluar pendengar acara.

Tunjukkan Klik Div ​​di dalam kotak hitam, tiada apa yang berlaku. Klik (fungsi () {document.body.addEventListener ('klik', boxCloser, false);}) ;}); fungsi boxCloser (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('klik', boxCloser, false); $ ('# bigbox'). hide (); }}

Juga pastikan anda memasukkan jQuery dalam projek anda kerana beberapa fungsi di atas menggunakan pustaka itu.

Tutup div atau menu pada klik di luar w / javascript