Oleh kerana kita baru sahaja membincangkan peristiwa, sekarang adalah masa yang tepat untuk menyebut peristiwa khusus. Semua acara yang telah kita bicarakan setakat ini adalah peristiwa "nyata". Acara yang berasal dari DOM berdasarkan perkara sebenar yang berlaku, seperti klik atau tekan kekunci. Acara ini dapat "dipicu" secara artifisial di jQuery. Sebagai contoh, untuk "memalsukan" klik pada butang, anda boleh melakukan:
$("#some-button").trigger("click");
Kemudian pengendali klik yang terikat pada butang itu akan menyala seolah-olah pengguna benar-benar mengklik butang itu. Tetapi bagaimana jika kita lakukan:
$("#some-button").trigger("dance");
Apa yang berlaku kemudian? "Menari" bukan acara "nyata". Tetapi tidak ada kesalahan yang akan dilemparkan. Kebetulan tidak ada pengendali "tarian" yang terikat pada butang itu. Tetapi mungkin ada dan pada dasarnya itulah peristiwa kebiasaan. Acara dengan nama yang baru anda buat.
Mengapa anda berbuat demikian? Sebilangan besar sebab organisasi. Mungkin anda ingin memisahkan JavaScript yang menangani peristiwa dan tindakan, dan JavaScript anda yang mengendalikan data dan perkara pentadbiran. Itu sangat wajar. Sekiranya butang ini mungkin butang "Simpan Tetapan", anda hanya dapat mematikan acara khusus bernama "simpan-tetapan" dan di tempat lain mempunyai penangan yang menunggu peristiwa itu aktif dan melakukan penjimatan data yang sebenarnya. Itulah asasnya apa yang kami lakukan dalam contoh dari video.
Kes penggunaan lain untuk acara khusus ialah mengarang komponen UI generik. Saya bercakap mengenai perkara itu dalam catatan blog ini.
Mungkin anda mencipta kesan akordion sebagai komponen UI. Akordion melakukan apa yang semua akordion, buka dan tutup panel pada klik / ketukan. Komponen UI anda melakukannya dengan sangat baik. Sekarang pembangun yang menggunakan akordion itu mungkin mempunyai perkara istimewa dan unik yang mereka mahu berlaku dengannya. Katakan mereka menggunakan akordeon untuk tetapan akaun, dan ketika pengguna menutup panel, mereka ingin menyimpan data dari elemen bentuk di panel tersebut. Model tradisional mungkin bagi pengarang komponen UI akordion itu untuk menawarkan fungsi panggilan balik ketika tindakan itu berlaku. Apabila anda memulakan akordeon, anda meneruskan fungsi panggilan balik yang anda mahu dipanggil ketika perkara itu berlaku. Itulah satu jalan untuk dituruni. Jalan lain adalah untuk akordeon secara automatik mematikan acara khusus untuk semua tindakan yang relevan yang dilakukannya.Apabila panel itu ditutup, panel tersebut dapat melepaskanpanelClosed
acara pada elemen akordion itu sendiri. Oleh itu, pembangun yang bekerja dengannya boleh mengikat acara tersebut. Hanya jalan lain yang boleh anda jalani atas alasan organisasi yang boleh menjadi sangat elegan.