


Petua praktikal dan kajian kes untuk mengelakkan insiden daripada menggelegak
. Mekanisme menggelegak ini kadangkala boleh membawa kepada masalah dan ralat yang tidak dijangka. Untuk mengelakkan masalah ini berlaku, kita perlu belajar menggunakan beberapa teknik praktikal untuk mengelakkan kejadian daripada menggelegak. Artikel ini akan memperkenalkan beberapa teknik yang biasa digunakan untuk mengelakkan peristiwa menggelegak, menganalisisnya dengan kes dan memberikan contoh kod khusus.
1. Gunakan kaedah stopPropagation objek acara
Dalam JavaScript, objek acara (event) menyediakan kaedah stopPropagation, yang boleh digunakan untuk menghalang acara daripada terus menggelembung. Penggunaan kaedah ini sangat mudah, hanya panggil event.stopPropagation() dalam fungsi pemprosesan acara.
Sebagai contoh, terdapat butang dan elemen induk acara klik dalam halaman Apabila butang diklik, halang acara klik daripada menggelegak ke elemen induk:
<div id="parent"> <button id="btn">点击按钮</button> </div> <script> const parent = document.getElementById('parent'); const btn = document.getElementById('btn'); btn.addEventListener('click', function(event) { event.stopPropagation(); console.log('点击了按钮'); }); parent.addEventListener('click', function() { console.log('点击了父元素'); }); </script>
Dalam kod di atas, selepas butang. diklik, output dalam konsol adalah Hanya "mengklik butang" tetapi "mengklik elemen induk" tidak dicetuskan, menunjukkan bahawa acara menggelegak berjaya dihalang dengan memanggil kaedah stopPropagation.
2. Gunakan atribut cancelBubble bagi objek acara
Selain menggunakan kaedah stopPropagation, objek acara juga menyediakan atribut cancelBubble, iaitu nilai Boolean. Anda boleh menghalang acara daripada menggelegak dengan menetapkan sifat cancelBubble kepada benar.
Sebagai contoh, dalam halaman terdapat pautan dan acara klik sebagai elemen induk Apabila pautan diklik, elakkan peristiwa klik daripada menggelegak ke elemen induk:
<div id="parent"> <a href="#" id="link">点击链接</a> </div> <script> const parent = document.getElementById('parent'); const link = document.getElementById('link'); link.addEventListener('click', function(event) { event.cancelBubble = true; console.log('点击了链接'); }); parent.addEventListener('click', function() { console.log('点击了父元素'); }); </script>
Dalam kod di atas, selepas mengklik butang. pautan, output dalam konsol hanya "diklik pada pautan" tetapi "diklik pada elemen induk" tidak dicetuskan, menunjukkan bahawa acara menggelegak berjaya dihalang dengan menetapkan atribut cancelBubble kepada benar.
3. Analisis Kes
Kini kami menggunakan kes khusus untuk menganalisis lebih lanjut senario dan teknik untuk mencegah kejadian menggelegak.
Andaikan terdapat berbilang elemen div bersarang dalam halaman, dan setiap elemen div mempunyai acara kliknya sendiri. Sekarang, perkara yang ingin kami capai ialah apabila div paling dalam diklik, hanya peristiwa klik div dicetuskan, tetapi bukan peristiwa klik elemen induknya.
<div id="outer" style="background: yellow;"> <div id="middle" style="background: blue;"> <div id="inner" style="background: red;"></div> </div> </div> <script> const outer = document.getElementById('outer'); const middle = document.getElementById('middle'); const inner = document.getElementById('inner'); outer.addEventListener('click', function() { console.log('点击了外层div'); }); middle.addEventListener('click', function() { console.log('点击了中间div'); }); inner.addEventListener('click', function(event) { event.stopPropagation(); console.log('点击了最内层div'); }); </script>
Dalam kod di atas, apabila kita mengklik pada div paling dalam, satu-satunya output dalam konsol ialah "diklik pada div paling dalam", tetapi "klik pada div tengah" dan "klik pada div luar" bukan dicetuskan, menunjukkan bahawa peristiwa menggelegak berjaya dihalang dengan memanggil kaedah stopPropagation, mencapai keperluan kita.
Ringkasnya, dengan menggunakan kaedah stopPropagation atau cancelBubble bagi objek acara, anda boleh menghalang acara daripada menggelegak dengan mudah. Dalam pembangunan sebenar, adalah penting untuk memilih teknik yang sesuai untuk mengelakkan acara menggelegak mengikut keperluan tertentu. Semoga artikel ini akan membantu anda menggunakan teknik yang lebih baik untuk mencegah acara menggelegak.
Atas ialah kandungan terperinci Petua praktikal dan kajian kes untuk mengelakkan insiden daripada menggelegak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Memahami peristiwa menggelegak: Mengapakah klik pada elemen kanak-kanak mencetuskan peristiwa pada elemen induk? Peristiwa menggelegak bermaksud bahawa dalam struktur elemen bersarang, apabila elemen anak mencetuskan peristiwa, peristiwa itu akan dihantar ke elemen induk lapisan demi lapisan seperti menggelegak, sehingga elemen induk paling luar. Mekanisme ini membolehkan peristiwa pada elemen kanak-kanak disebarkan ke seluruh pepohon elemen dan mencetuskan semua elemen berkaitan secara bergilir-gilir. Untuk lebih memahami peristiwa menggelegak, mari lihat kod contoh tertentu. Kod HTML: <divid="induk&q

Mengapakah peristiwa menggelegak dicetuskan dua kali? Peristiwa menggelegak (Event Bubbling) bermaksud bahawa dalam DOM, apabila elemen mencetuskan acara (seperti acara klik), acara itu akan menggelegak daripada elemen ke elemen induk sehingga ia menggelembung ke objek dokumen peringkat atas. Acara menggelegak ialah sebahagian daripada model acara DOM, yang membolehkan pembangun mengikat pendengar acara kepada elemen induk, supaya apabila elemen anak mencetuskan peristiwa, peristiwa itu boleh ditangkap dan diproses melalui mekanisme menggelegak. Walau bagaimanapun, kadangkala pembangun menghadapi peristiwa yang menggelembung dan mencetuskan dua kali.

Tajuk: Sebab dan penyelesaian untuk kegagalan jQuery.val() Dalam pembangunan bahagian hadapan, jQuery sering digunakan untuk mengendalikan elemen DOM Kaedah .val() digunakan secara meluas untuk mendapatkan dan menetapkan nilai elemen bentuk. Walau bagaimanapun, kadangkala kita menghadapi situasi di mana kaedah .val() gagal, mengakibatkan ketidakupayaan untuk mendapatkan atau menetapkan nilai elemen borang dengan betul. Artikel ini akan meneroka punca kegagalan .val(), menyediakan penyelesaian yang sepadan dan melampirkan contoh kod tertentu. 1.Kaedah analisis sebab.val().

Acara klik dalam JavaScript tidak boleh dilaksanakan berulang kali kerana mekanisme menggelegak acara. Untuk menyelesaikan masalah ini, anda boleh mengambil langkah berikut: Gunakan tangkapan peristiwa: Tentukan pendengar acara untuk dicetuskan sebelum acara berbuih. Menyerahkan acara: Gunakan event.stopPropagation() untuk menghentikan acara menggelegak. Gunakan pemasa: cetuskan pendengar acara sekali lagi selepas beberapa ketika.

Pengubah suai acara Vue.js digunakan untuk menambah gelagat tertentu, termasuk: menghalang gelagat lalai (.prevent) menghentikan acara menggelegak (.stop) acara sekali (.sekali) menangkap acara (.capture) mendengar acara pasif (.pasif) Suai pengubah suai (.self)Pengubah suai kunci (.key)

Mengapakah peristiwa menggelegak berlaku dua kali berturut-turut? Peristiwa menggelegak ialah konsep penting dalam pembangunan web Ini bermakna apabila peristiwa dicetuskan dalam elemen HTML bersarang, acara itu akan menggelegak daripada elemen paling dalam kepada elemen paling luar. Proses ini kadangkala boleh menyebabkan kekeliruan Satu masalah biasa ialah peristiwa menggelegak berlaku dua kali berturut-turut. Untuk lebih memahami mengapa peristiwa menggelegak berlaku dua kali berturut-turut, mari kita lihat contoh kod dahulu:

Apakah situasi dalam acara JS yang tidak akan timbul? Peristiwa menggelegak (Event Bubbling) bermaksud bahawa selepas peristiwa dicetuskan pada elemen tertentu, peristiwa itu akan dihantar ke atas di sepanjang pepohon DOM bermula dari elemen paling dalam ke elemen paling luar Kaedah penghantaran ini dipanggil acara menggelegak. Walau bagaimanapun, tidak semua acara boleh menggelegak. Terdapat beberapa kes khas di mana acara tidak akan muncul. Artikel ini akan memperkenalkan situasi dalam JavaScript di mana acara tidak akan muncul. 1. Gunakan stopPropagati

Apakah peristiwa menggelegak? Analisis mendalam tentang mekanisme menggelegak acara Acara menggelegak ialah konsep penting dalam pembangunan web, yang mentakrifkan cara acara disampaikan pada halaman. Apabila peristiwa pada elemen dicetuskan, peristiwa itu akan dihantar bermula dari elemen paling dalam dan diteruskan ke luar sehingga ia dihantar ke elemen paling luar. Kaedah penyampaian ini adalah seperti buih yang menggelegak di dalam air, maka ia dipanggil peristiwa menggelegak. Dalam artikel ini, kami akan menganalisis mekanisme peristiwa menggelegak secara mendalam. Prinsip acara menggelegak boleh difahami melalui contoh mudah. Katakan kita mempunyai H
