Melampirkan pendengar acara tunggal pada elemen induk, bukannya menambah pendengar berasingan kepada setiap kanak-kanak, ialah teknik yang dikenali sebagai delegasi acara. Ini berfungsi kerana acara menggelegak, di mana peristiwa (seperti satu klik) menggerakkan pepohon DOM daripada anak kepada induk. Dengan mengendalikan acara di peringkat ibu bapa, anda boleh menjimatkan memori dan meningkatkan prestasi, terutamanya apabila berurusan dengan banyak elemen atau elemen kanak-kanak yang ditambah secara dinamik.
Bagaimana Ia Berfungsi?
Apabila peristiwa dicetuskan pada elemen kanak-kanak (contohnya, satu klik), ia tidak berhenti di situ. Peristiwa menggelembung ke induknya, dan seterusnya, ke atas pepohon DOM sehingga ia mencapai akar dokumen. Delegasi acara mengambil kesempatan daripada ini dengan meletakkan pendengar acara pada nenek moyang yang sama bagi semua elemen kanak-kanak sasaran. Nenek moyang ini mendengar peristiwa yang timbul daripada unsur kanak-kanak dan mengendalikannya berdasarkan keadaan tertentu, seperti jenis acara atau elemen kanak-kanak tertentu yang mencetuskan peristiwa itu.
Contoh Delegasi Acara
Katakanlah kami mempunyai senarai butang dan kami mahu mengendalikan acara klik untuk setiap butang. Daripada menambahkan pendengar acara klik pada setiap butang, kami boleh menambahkan pendengar tunggal pada elemen induk mereka.
Sekarang, daripada menambah pendengar acara klik pada setiap butang, kami melampirkan pendengar tunggal kepada ibu bapa
- elemen.
document.getElementById("buttonList").addEventListener("click", function(event) { if (event.target.tagName === "BUTTON") { const action = event.target.getAttribute("data-action"); if (action === "delete") { console.log("Deleting item..."); } else if (action === "edit") { console.log("Editing item..."); } else if (action === "view") { console.log("Viewing item..."); } } });
Pendengar acara klik dilampirkan pada
- unsur (induk). Di dalam pengendali acara, kami menyemak sama ada elemen yang diklik ialah butang menggunakan event.target.tagName === "BUTTON". Ini memastikan bahawa kami hanya membalas klik butang. Kami menggunakan atribut data-action untuk menentukan tindakan yang perlu diambil (padam, edit atau lihat). Pendekatan ini lebih cekap dan berskala, terutamanya jika kami mempunyai banyak butang atau menambah butang baharu secara dinamik.
Satu lagi Contoh dengan Elemen Dinamik
Jika senarai butang dijana secara dinamik (cth., menambahkan butang baharu melalui JavaScript), delegasi acara masih akan berfungsi dengan sempurna tanpa perlu melampirkan semula pendengar acara.
const ul = document.getElementById("buttonList"); // Dynamically adding new buttons const newButton = document.createElement("li"); newButton.innerHTML = '<button data-action="share">Share</button>'; ul.appendChild(newButton); // The same event listener on the parent will handle the new button ul.addEventListener("click", function(event) { if (event.target.tagName === "BUTTON") { const action = event.target.getAttribute("data-action"); console.log(action + " button clicked."); } });
Event Bubbling: Delegasi acara berfungsi kerana acara menggelegak, di mana peristiwa yang dicetuskan pada elemen kanak-kanak merebak sehingga nenek moyangnya.
Cekap untuk Kandungan Dinamik: Memandangkan kami melampirkan pendengar acara kepada induk, ia berfungsi untuk elemen yang ditambahkan kemudian pada DOM.
Prestasi: Mengurangkan overhed untuk melampirkan dan mengurus berbilang pendengar acara, terutamanya dengan sejumlah besar elemen kanak-kanak.
Delegasi acara ialah teknik penting untuk pengendalian acara DOM yang cekap, terutamanya apabila berurusan dengan banyak elemen atau kandungan dinamik.
Atas ialah kandungan terperinci Ketahui Delegasi Acara dalam JavaScript seperti anda 5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Tutorial ini menunjukkan kepada anda bagaimana untuk mengintegrasikan API carian Google tersuai ke dalam blog atau laman web anda, menawarkan pengalaman carian yang lebih halus daripada fungsi carian tema WordPress standard. Ia menghairankan mudah! Anda akan dapat menyekat carian ke y

Siri artikel ini ditulis semula pada pertengahan 2017 dengan maklumat terkini dan contoh segar. Dalam contoh JSON ini, kita akan melihat bagaimana kita dapat menyimpan nilai mudah dalam fail menggunakan format JSON. Menggunakan notasi pasangan nilai utama, kami boleh menyimpan apa-apa jenis

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Tingkatkan Penyampaian Kod Anda: 10 Penyeret Sintaks untuk Pemaju Coretan kod perkongsian di laman web atau blog anda adalah amalan biasa bagi pemaju. Memilih penyapu sintaks yang betul dapat meningkatkan daya tarikan dan daya tarikan visual dengan ketara. T

Artikel ini membentangkan pemilihan lebih daripada 10 tutorial mengenai rangka kerja javascript dan jquery model-view-controller (MVC), sesuai untuk meningkatkan kemahiran pembangunan web anda pada tahun baru. Tutorial ini merangkumi pelbagai topik, dari Foundatio

Leverage JQuery untuk Layouts Laman Web yang mudah: 8 Plugin Essential JQuery memudahkan susun atur laman web dengan ketara. Artikel ini menyoroti lapan plugin jQuery yang kuat yang menyelaraskan proses, terutamanya berguna untuk penciptaan laman web manual

Mata teras Ini dalam JavaScript biasanya merujuk kepada objek yang "memiliki" kaedah, tetapi ia bergantung kepada bagaimana fungsi dipanggil. Apabila tidak ada objek semasa, ini merujuk kepada objek global. Dalam penyemak imbas web, ia diwakili oleh tetingkap. Apabila memanggil fungsi, ini mengekalkan objek global; tetapi apabila memanggil pembina objek atau mana -mana kaedahnya, ini merujuk kepada contoh objek. Anda boleh mengubah konteks ini menggunakan kaedah seperti panggilan (), memohon (), dan mengikat (). Kaedah ini memanggil fungsi menggunakan nilai dan parameter yang diberikan. JavaScript adalah bahasa pengaturcaraan yang sangat baik. Beberapa tahun yang lalu, ayat ini


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini
