Satu atau beberapa jenis peristiwa yang dipisahkan ruang dan ruang nama opsional, seperti "klik" atau "keydown. plugin saya" Show
pemilih Jenis. String pemilih untuk memfilter turunan dari elemen terpilih yang memicu kejadian. Jika pemilih 8 atau dihilangkan, acara selalu dipicu saat mencapai elemen yang dipilih data Jenis. Data yang akan diteruskan ke handler di 9 saat suatu peristiwa dipicu pawang Jenis. ( eventObject [, extraParameter ] [,. ] ) Sebuah fungsi untuk dieksekusi ketika event dipicu. Nilai _0 juga diperbolehkan sebagai singkatan untuk fungsi yang hanya melakukan 1 versi ditambahkan. 1. 7
Metode _3 menempelkan event handler ke kumpulan elemen yang dipilih saat ini di objek jQuery. Pada jQuery 1. 7, metode 3 menyediakan semua fungsionalitas yang diperlukan untuk melampirkan event handler. Untuk bantuan dalam mengonversi dari metode peristiwa jQuery yang lebih lama, lihat 5, 6, dan 7. Untuk menghapus acara yang terikat dengan _3, lihat 9. Untuk melampirkan acara yang hanya berjalan sekali lalu menghapusnya sendiri, lihat 0 Nama acara dan ruang namaNama peristiwa apa pun dapat digunakan untuk argumen ________12______1. jQuery akan melewati jenis peristiwa JavaScript standar browser, memanggil fungsi 2 saat browser menghasilkan peristiwa karena tindakan pengguna seperti 3. Selain itu, metode _4 dapat memicu nama peristiwa browser standar dan nama peristiwa khusus untuk memanggil penangan terlampir. Nama peristiwa hanya boleh berisi karakter alfanumerik, garis bawah, dan titik dua Nama peristiwa dapat dikualifikasikan oleh ruang nama peristiwa yang menyederhanakan penghapusan atau pemicu peristiwa. Misalnya, _5 mendefinisikan myPlugin dan ruang nama sederhana untuk kejadian klik khusus ini. Penangan kejadian klik yang dilampirkan melalui string itu dapat dihapus dengan 6 atau 7 tanpa mengganggu penangan klik lain yang melekat pada elemen. Ruang nama mirip dengan kelas CSS karena tidak hierarkis; . Ruang nama harus berisi huruf besar/kecil dan angka saja Dalam bentuk kedua dari _3, argumen 1 adalah objek biasa. Kuncinya adalah string dalam bentuk yang sama dengan argumen 1 dengan nama jenis peristiwa yang dipisahkan spasi dan ruang nama opsional. Nilai untuk setiap kunci adalah fungsi (atau 0 nilai) yang digunakan sebagai 2 alih-alih argumen terakhir untuk metode. Dalam hal lain, kedua bentuk itu identik dalam perilakunya seperti yang dijelaskan di bawah ini Penangan acara langsung dan didelegasikanSebagian besar gelembung peristiwa browser, atau menyebar, dari elemen terdalam dan terdalam (target peristiwa) dalam dokumen di mana peristiwa itu terjadi sampai ke badan dan elemen 3. Di Internet Explorer 8 dan yang lebih rendah, beberapa peristiwa seperti 4 dan 5 tidak menggelembung secara bawaan tetapi jQuery menambalnya menjadi menggelembung dan membuat perilaku lintas-browser yang konsisten Jika 6 dihilangkan atau null, event handler disebut sebagai direct atau direct-bound. Handler dipanggil setiap kali suatu peristiwa terjadi pada elemen yang dipilih, apakah itu terjadi langsung pada elemen atau gelembung dari elemen turunan (dalam) Ketika _6 disediakan, event handler disebut sebagai didelegasikan. Handler tidak dipanggil ketika event terjadi langsung pada elemen terikat, tetapi hanya untuk keturunan (inner element) yang cocok dengan selector. jQuery menggelembungkan acara dari target acara hingga ke elemen tempat penangan terpasang (mis. e. , elemen terdalam ke terluar) dan menjalankan penangan untuk setiap elemen di sepanjang jalur yang cocok dengan pemilih Penangan acara terikat hanya pada elemen yang dipilih saat ini; . Untuk memastikan elemen ada dan dapat dipilih, tempatkan skrip setelah elemen di markup HTML atau lakukan pengikatan peristiwa di dalam penangan siap dokumen. Alternatifnya, gunakan penangan acara yang didelegasikan untuk melampirkan penangan acara Penangan acara yang didelegasikan memiliki keuntungan bahwa mereka dapat memproses acara dari elemen turunan yang ditambahkan ke dokumen di lain waktu. Dengan memilih elemen yang dijamin hadir pada saat penangan acara yang didelegasikan dipasang, Anda dapat menggunakan penangan acara yang didelegasikan untuk menghindari kebutuhan untuk sering melampirkan dan menghapus penangan acara. Elemen ini bisa menjadi elemen penampung tampilan dalam desain Model-View-Controller, misalnya, atau 3 jika event handler ingin memantau semua event yang menggelegak dalam dokumen. Elemen _3 tersedia di 1 dokumen sebelum memuat HTML lainnya, jadi aman untuk melampirkan acara di sana tanpa menunggu dokumen siap Selain kemampuannya untuk menangani event pada elemen turunan yang belum dibuat, keuntungan lain dari penangan event yang didelegasikan adalah potensi overhead yang jauh lebih rendah ketika banyak elemen harus dipantau. Pada tabel data dengan 1.000 baris di 2, contoh ini melampirkan handler ke 1.000 elemen 1 2 3
Pendekatan pendelegasian acara melampirkan pengendali acara hanya ke satu elemen, tbody, dan acara hanya perlu meluap satu tingkat (dari 3 yang diklik hingga 2) 1 2 3
Catatan. Penangan acara yang didelegasikan tidak berfungsi untuk SVG Penangan acara dan lingkungannyaArgumen _2 adalah fungsi (atau nilai 0, lihat di bawah), dan diperlukan kecuali jika Anda meneruskan objek untuk argumen 1. Anda dapat memberikan fungsi penangan anonim pada titik panggilan 3, seperti yang telah dilakukan contoh di atas, atau mendeklarasikan fungsi bernama dan meneruskan namanya 1 2 3 4
Saat browser memicu suatu peristiwa atau JavaScript lainnya memanggil metode 4 jQuery, jQuery meneruskan objek 0 yang dapat digunakan oleh handler untuk menganalisis dan mengubah status peristiwa. Objek ini adalah subset data yang dinormalisasi yang disediakan oleh browser; . Misalnya, 2 berisi nama acara (mis. g. , "resize") dan _3 menunjukkan elemen terdalam (terdalam) di mana peristiwa itu terjadi Secara default, sebagian besar peristiwa meluap dari target peristiwa asli ke elemen 3. Di setiap elemen di sepanjang jalan, jQuery memanggil penangan acara yang cocok yang telah dilampirkan. Handler dapat mencegah event menggelegak lebih jauh ke atas pohon dokumen (dan dengan demikian mencegah handler pada elemen tersebut berjalan) dengan memanggil 5. Namun, penangan lain yang terpasang pada elemen saat ini akan berjalan. Untuk mencegahnya, hubungi 6. (Event handler yang terikat pada suatu elemen dipanggil dengan urutan yang sama seperti saat terikat. ) Demikian pula, penangan dapat memanggil 7 untuk membatalkan tindakan default apa pun yang mungkin dimiliki browser untuk acara ini; . Tidak semua acara browser memiliki tindakan default, dan tidak semua tindakan default dapat dibatalkan. Lihat untuk detailnya Mengembalikan _0 dari event handler akan secara otomatis memanggil 5 dan 7. Nilai 0 juga dapat diberikan untuk 2 sebagai singkatan untuk 4. Jadi, _5 melampirkan event handler ke semua tautan dengan kelas "dinonaktifkan" yang mencegah mereka untuk diikuti saat diklik dan juga menghentikan acara agar tidak menggelegak Saat jQuery memanggil handler, kata kunci 6 adalah referensi ke elemen tempat acara dikirimkan; . (Perhatikan bahwa _6 mungkin tidak sama dengan 3 jika peristiwa tersebut muncul dari elemen turunan. ) Untuk membuat objek jQuery dari elemen sehingga dapat digunakan dengan metode jQuery, gunakan 0 Melewati data ke handlerJika argumen 1 diberikan kepada 3 dan bukan 8 atau 4, argumen tersebut diteruskan ke handler di properti 9 setiap kali peristiwa dipicu. Argumen _1 dapat berupa tipe apa pun, tetapi jika sebuah string digunakan, 6 harus disediakan atau secara eksplisit diteruskan sebagai 8 sehingga data tidak disalahartikan sebagai pemilih. Praktik terbaik adalah menggunakan objek biasa sehingga beberapa nilai dapat diteruskan sebagai properti Pada jQuery 1. 4, event handler yang sama dapat diikat ke suatu elemen beberapa kali. Ini sangat berguna ketika fitur _9 sedang digunakan, atau ketika data unik lainnya berada dalam penutupan di sekitar fungsi event handler. Sebagai contoh 1 2 3 4 5 6 7 8 9
Kode di atas akan menghasilkan dua peringatan berbeda saat tombol diklik Sebagai alternatif atau tambahan untuk argumen 1 yang disediakan untuk metode 3, Anda juga dapat meneruskan data ke event handler menggunakan argumen kedua ke 4 atau 3. Data yang disediakan dengan cara ini diteruskan ke event handler sebagai parameter lebih lanjut setelah objek 0. Jika array diteruskan ke argumen kedua 4 atau 3, setiap elemen dalam array akan disajikan ke event handler sebagai parameter individual Performa acaraDalam kebanyakan kasus, peristiwa seperti 3 jarang terjadi dan kinerja tidak menjadi perhatian yang signifikan. Namun, kejadian berfrekuensi tinggi seperti 8 atau 9 dapat menyala puluhan kali per detik, dan dalam kasus tersebut, menjadi lebih penting untuk menggunakan kejadian dengan bijaksana. Performa dapat ditingkatkan dengan mengurangi jumlah pekerjaan yang dilakukan dalam penangan itu sendiri, menyimpan informasi yang diperlukan oleh penangan daripada menghitungnya kembali, atau dengan membatasi kecepatan jumlah pembaruan halaman aktual menggunakan 00 Melampirkan banyak penangan acara yang didelegasikan di dekat bagian atas pohon dokumen dapat menurunkan kinerja. Setiap kali peristiwa terjadi, jQuery harus membandingkan semua penyeleksi dari semua peristiwa terlampir dari jenis tersebut ke setiap elemen di jalur dari target peristiwa hingga bagian atas dokumen. Untuk performa terbaik, lampirkan acara yang didelegasikan di lokasi dokumen sedekat mungkin dengan elemen target. Hindari penggunaan berlebihan _3 atau 02 untuk acara yang didelegasikan pada dokumen besar jQuery dapat memproses pemilih sederhana dari bentuk 03 dengan sangat cepat saat digunakan untuk memfilter acara yang didelegasikan. Jadi, _04, 05, dan 06 semuanya adalah pemilih cepat. Acara yang didelegasikan yang menggunakan penyeleksi yang lebih kompleks, terutama yang hierarkis, bisa beberapa kali lebih lambat--walaupun masih cukup cepat untuk sebagian besar aplikasi. Pemilih hierarki seringkali dapat dihindari hanya dengan melampirkan penangan ke titik yang lebih sesuai dalam dokumen. Misalnya, alih-alih _07 gunakan 08 Catatan tambahanAda metode singkatan untuk beberapa peristiwa seperti 09 yang dapat digunakan untuk melampirkan atau memicu event handler. Untuk daftar lengkap metode steno, lihat kategori acara Tidak digunakan lagi di jQuery 1. 8, dihapus dalam 1. 9. Nama _10 digunakan sebagai singkatan untuk string 11. Itu melampirkan satu event handler untuk dua event tersebut, dan handler harus memeriksa 2 untuk menentukan apakah event tersebut 13 atau 14. Jangan bingung antara pseudo-event-name "hover" dengan metode 15, yang menerima satu atau dua fungsi sistem peristiwa jQuery mengharuskan elemen DOM memungkinkan pelekatan data melalui properti pada elemen, sehingga peristiwa dapat dilacak dan dikirimkan. Elemen 16, 17, dan 18 tidak dapat melampirkan data, dan karena itu tidak dapat memiliki peristiwa jQuery yang terikat padanya Peristiwa 19 dan 20 ditentukan oleh W3C untuk tidak menggelembung, tetapi jQuery mendefinisikan peristiwa lintas-browser 21 dan 22 yang melakukan gelembung. Ketika 19 dan 20 digunakan untuk melampirkan event handler yang didelegasikan, jQuery memetakan nama dan mengirimkannya masing-masing sebagai 21 dan 22. Untuk konsistensi dan kejelasan, gunakan nama jenis peristiwa menggelegak Di semua browser, peristiwa 27, 9, dan 29 (e. g. , pada elemen _30) jangan menggelembung. Di Internet Explorer 8 dan lebih rendah, peristiwa _31 dan 32 tidak muncul. Acara semacam itu tidak didukung untuk digunakan dengan delegasi, tetapi dapat digunakan saat penangan acara dilampirkan langsung ke elemen yang menghasilkan acara Acara 29 pada objek 34 menggunakan argumen nonstandar dan konvensi nilai pengembalian, sehingga tidak didukung oleh jQuery. Sebagai gantinya, tetapkan fungsi penangan langsung ke properti 35 Daftar penangan untuk suatu elemen diatur saat acara pertama kali dikirimkan. Menambahkan atau menghapus penangan acara pada elemen saat ini tidak akan berpengaruh hingga saat berikutnya acara tersebut ditangani. Untuk mencegah event handler lebih lanjut mengeksekusi elemen di dalam event handler, panggil 6. Perilaku ini bertentangan dengan. Untuk lebih memahami kasus ini, perhatikan kode berikut 1 2 3 4 5 6 7 8 9 10 11 12 13
Dalam kode di atas, _37 tetap akan dieksekusi pertama kali meskipun dihapus menggunakan 9. Namun, penangan tidak akan dieksekusi pada saat peristiwa 3 berikut ini dipicu ContohTampilkan teks paragraf dalam peringatan saat diklik 1 2 3
Meneruskan data ke event handler, yang ditentukan di sini dengan nama 1 2 3 4
Batalkan tindakan pengiriman formulir dan cegah acara meluap dengan mengembalikan 0 1
Batalkan hanya tindakan default dengan menggunakan 41 1 2 3
Hentikan pengiriman acara agar tidak menggelegak tanpa mencegah pengiriman formulir, menggunakan 42 1 2 3
Teruskan data ke event handler menggunakan argumen kedua ke 4 1 2 3 4 0 Gunakan argumen kedua _4 untuk meneruskan array data ke event handler 1 2 3 4 _1 Lampirkan dan picu peristiwa khusus (non-browser). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 _2 DemoLampirkan beberapa penangan acara secara bersamaan menggunakan objek biasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 _3 DemoKlik paragraf mana pun untuk menambahkan yang lain setelahnya. Perhatikan bahwa _3 memungkinkan acara klik pada paragraf apa pun--bahkan yang baru--karena acara ditangani oleh elemen tubuh yang selalu ada setelah muncul di sana Bagaimana cara menemukan event handler di JavaScript?Klik kanan pada tombol ikon pencarian dan pilih "periksa" untuk membuka alat pengembang Chrome. Setelah alat dev terbuka, alihkan ke tab "Pendengar Acara" dan Anda akan melihat semua pendengar acara terikat ke elemen. Anda dapat memperluas pendengar acara apa pun dengan mengklik panah kanan
Bagaimana cara mendapatkan semua pendengar acara dalam JavaScript?Daftar semua event listener dalam JavaScript dapat dilakukan. Tidak sesulit itu; . fungsi reportIn(e){ var a = ini. lastListenerInfo[ini. lastListenerInfo. hack the prototype 's method of the HTML elements (before adding the listeners). function reportIn(e){ var a = this. lastListenerInfo[this. lastListenerInfo.
Bagaimana saya tahu jika eventListener ditambahkan?Ini bisa dilakukan. . Di halaman dengan mengklik kanan item di halaman web yang ingin Anda periksa dan pilih "Periksa Elemen" dari menu Di dalam konsol dengan menggunakan fungsi untuk memilih elemen, seperti dokumen. querySelector, lalu mengklik ikon di samping elemen untuk melihatnya di tab Inspektur Berapa banyak event handler yang ada di JavaScript?Ringkasan. Ada tiga cara untuk menetapkan event handler. Atribut event handler HTML, properti event handler elemen, dan addEventListener(). |