Rumah >hujung hadapan web >tutorial js >Menganalisis mekanisme dan penggunaan acara menggelegak
Acara menggelegak ialah mekanisme penyampaian acara yang sering digunakan dalam pembangunan bahagian hadapan. Dalam artikel ini, kami akan menerangkan secara terperinci prinsip dan aplikasi acara menggelegak, dan menyediakan contoh kod untuk membantu pembaca memahami dengan lebih baik. . Dalam erti kata lain, acara diluluskan bermula dengan elemen yang paling khusus dan berkembang kepada elemen yang lebih umum.
Prinsip peristiwa menggelegak boleh disimpulkan kepada perkara berikut:
Penyebaran peristiwa adalah daripada unsur anak kepada unsur induk, sehinggalah kepada unsur akar.
<div id="parentElement"> <button>按钮1</button> <button>按钮2</button> <button>按钮3</button> </div> <script> var parentElement = document.getElementById('parentElement'); parentElement.addEventListener('click', function(e) { console.log(e.target.innerHTML + '被点击了'); }); </script>
<div id="parentElement"> <button>按钮1</button> <button>按钮2</button> <button>按钮3</button> </div> <script> var parentElement = document.getElementById('parentElement'); parentElement.addEventListener('click', function(e) { if (e.target.tagName.toLowerCase() === 'button') { console.log(e.target.innerHTML + '被点击了'); } }); var newButton = document.createElement('button'); newButton.innerHTML = '新按钮'; parentElement.appendChild(newButton); </script>Dalam kod di atas, kami mengikat pengendali acara klik pada div elemen induk, dengan menilai acara Sama ada sasaran yang dicetuskan elemen ialah butang untuk menapis elemen yang tidak perlu diproses. Dengan cara ini kita boleh mengendalikan acara klik untuk elemen yang ditambah secara dinamik tanpa perlu mengikat acara berasingan untuk setiap elemen yang baru ditambah.
<div id="parentElement"> <button>按钮1</button> <button>按钮2</button> <button>按钮3</button> </div> <script> var buttons = document.getElementsByTagName('button'); for (var i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function(e) { console.log(e.target.innerHTML + '被点击了'); e.stopPropagation(); }); } var parentElement = document.getElementById('parentElement'); parentElement.addEventListener('click', function(e) { console.log('父元素被点击了'); }); </script>Dalam kod di atas, apabila butang elemen kanak-kanak diklik, acara itu akan dicetuskan Pengendali acara klik bagi elemen anak itu sendiri dan memanggil kaedah stopPropagation() untuk menghentikan acara daripada terus dihantar. Oleh itu, pengendali acara klik elemen induk tidak akan dipecat. Ringkasan:
Atas ialah kandungan terperinci Menganalisis mekanisme dan penggunaan acara menggelegak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!