Delegasi Acara ialah teknik dalam JavaScript di mana pendengar acara tunggal digunakan untuk mengendalikan acara untuk berbilang elemen kanak-kanak. Pendekatan ini memanfaatkan event menggelegak untuk meningkatkan prestasi dan memudahkan kod apabila berurusan dengan elemen yang dicipta secara dinamik atau berbilang elemen yang serupa.
Daripada melampirkan pendengar acara pada elemen anak individu, anda melampirkan pendengar tunggal pada elemen induk. Pendengar ini menangkap peristiwa yang timbul daripada anak-anaknya.
<ul> <h4> <strong>JavaScript</strong> </h4> <pre class="brush:php;toolbar:false">const menu = document.getElementById("menu"); menu.addEventListener("click", function(event) { if (event.target.tagName === "LI") { console.log("Clicked item:", event.target.textContent); } });
Delegasi acara sesuai untuk mengurus acara pada elemen yang ditambah secara dinamik.
const menu = document.getElementById("menu"); // Adding a new item dynamically const newItem = document.createElement("li"); newItem.textContent = "Blog"; menu.appendChild(newItem); // No need to add a new event listener menu.addEventListener("click", function(event) { if (event.target.tagName === "LI") { console.log("Clicked item:", event.target.textContent); } });
Gunakan stopPropagation() atau syarat khusus untuk mengehadkan pengendalian acara.
<ul> <h4> <strong>JavaScript</strong> </h4> <pre class="brush:php;toolbar:false">const menu = document.getElementById("menu"); menu.addEventListener("click", function(event) { if (event.target.tagName === "LI") { console.log("Clicked item:", event.target.textContent); } });
const menu = document.getElementById("menu"); // Adding a new item dynamically const newItem = document.createElement("li"); newItem.textContent = "Blog"; menu.appendChild(newItem); // No need to add a new event listener menu.addEventListener("click", function(event) { if (event.target.tagName === "LI") { console.log("Clicked item:", event.target.textContent); } });
menu.addEventListener("click", function(event) { if (event.target.tagName === "LI") { console.log("Clicked item:", event.target.textContent); } else { event.stopPropagation(); // Stop propagation for non-LI elements } });
<table> <pre class="brush:php;toolbar:false">const table = document.getElementById("dataTable"); table.addEventListener("click", function(event) { if (event.target.tagName === "TD") { console.log("Clicked cell:", event.target.textContent); } });
Dengan menguasai delegasi acara, anda boleh menulis kod JavaScript yang lebih bersih dan lebih cekap untuk aplikasi web interaktif.
Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun timbunan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.
Atas ialah kandungan terperinci Menguasai Perwakilan Acara dalam JavaScript: Permudahkan Pengendalian Acara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!