Rumah hujung hadapan web tutorial js Cara untuk memastikan acara menggelegak tidak menyebabkan masalah yang tidak perlu

Cara untuk memastikan acara menggelegak tidak menyebabkan masalah yang tidak perlu

Jan 12, 2024 pm 04:41 PM
Acara menggelegak soalan elakkan

Cara untuk memastikan acara menggelegak tidak menyebabkan masalah yang tidak perlu

Cara mengelakkan masalah yang tidak perlu yang disebabkan oleh peristiwa menggelegak memerlukan contoh kod khusus

Peristiwa menggelegak bermakna apabila peristiwa pada elemen dicetuskan, peristiwa yang sama pada elemen induk bersebelahan juga akan dicetuskan. Mekanisme penyebaran peristiwa ini mungkin menyebabkan beberapa masalah yang tidak perlu, seperti tidak dapat menangkap sumber acara dengan tepat dan menyebabkan masalah prestasi. Untuk mengelakkan masalah ini, kami boleh mengambil beberapa langkah untuk mengelakkan peristiwa daripada menggelegak Artikel ini akan memperkenalkan beberapa kaedah biasa dan menyediakan contoh kod yang sepadan untuk rujukan.

1. Gunakan kaedah stopPropagation()

Kaedah stopPropagation() boleh menghalang acara daripada menggelegak daripada terus menyebar, dengan itu hanya mencetuskan acara pada elemen semasa dan tidak mencetuskan acara yang sama pada elemen induk yang lain. Panggil sahaja kaedah ini dalam fungsi pengendalian acara.

Kod sampel adalah seperti berikut:

<div id="parent">
  <div id="child">
    <button id="btn">点击触发事件</button>
  </div>
</div>

<script>
document.getElementById('btn').addEventListener('click', function(e) {
  console.log('子元素被点击');
  e.stopPropagation();
});

document.getElementById('child').addEventListener('click', function() {
  console.log('子元素的父元素被点击');
});

document.getElementById('parent').addEventListener('click', function() {
  console.log('父元素被点击');
});
</script>
Salin selepas log masuk

Selepas menjalankan kod di atas, apabila butang diklik, hanya mesej bahawa elemen kanak-kanak telah diklik akan dicetuskan, tetapi bukan mesej bahawa elemen induk telah diklik.

2. Gunakan delegasi acara

Delegasi acara bermaksud mengikat acara kepada elemen induk, menilai sumber acara melalui atribut acara.sasaran dan melaksanakan operasi yang sepadan. Dengan cara ini, anda boleh mengelak mengikat fungsi pengendalian acara kepada setiap elemen anak, mengurangkan lebihan kod dan kerumitan penyelenggaraan.

Kod sampel adalah seperti berikut:

<ul id="list">
  <li>选项1</li>
  <li>选项2</li>
  <li>选项3</li>
  <li>选项4</li>
</ul>

<script>
document.getElementById('list').addEventListener('click', function(event) {
  if (event.target.tagName === 'LI') {
    console.log(event.target.textContent);
  }
});
</script>
Salin selepas log masuk

Selepas menjalankan kod di atas, kandungan teks yang sepadan akan dicetak apabila setiap pilihan diklik, tanpa mengikat acara klik pada setiap pilihan.

3. Gunakan kaedah stopImmediatePropagation()

Kaedah stopImmediatePropagation() bukan sahaja boleh menghalang peristiwa daripada menggelegak, tetapi juga menghalang pelaksanaan selanjutnya fungsi pemprosesan acara, dengan itu menghalang peristiwa lain yang berkaitan daripada dicetuskan. Panggil sahaja kaedah ini dalam fungsi pengendalian acara.

Kod sampel adalah seperti berikut:

<div>
  <button id="btn1">按钮1</button>
  <button id="btn2">按钮2</button>
</div>

<script>
document.getElementById('btn1').addEventListener('click', function(e) {
  console.log('按钮1被点击');
  e.stopImmediatePropagation();
});

document.getElementById('btn1').addEventListener('click', function() {
  console.log('按钮1被点击,但此函数不会执行');
});

document.getElementById('btn2').addEventListener('click', function() {
  console.log('按钮2被点击');
});
</script>
Salin selepas log masuk

Selepas menjalankan kod di atas, apabila butang 1 diklik, hanya mesej bahawa butang 1 diklik akan dicetuskan, dan peristiwa klik terikat kedua tidak akan dicetuskan.

Ringkasnya, kita boleh mengelakkan masalah yang tidak perlu yang disebabkan oleh peristiwa menggelegak dengan menggunakan kaedah stopPropagation(), delegasi acara dan kaedah stopImmediatePropagation(). Kaedah ini boleh mengurus penyebaran peristiwa dengan berkesan dan meningkatkan kebolehbacaan dan prestasi kod. Kami berharap contoh kod yang disediakan dalam artikel ini dapat membantu pembaca memahami dan menggunakan pengetahuan yang berkaitan dengan lebih baik.

Atas ialah kandungan terperinci Cara untuk memastikan acara menggelegak tidak menyebabkan masalah yang tidak perlu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mengapakah peristiwa menggelegak dicetuskan dua kali? Mengapakah peristiwa menggelegak dicetuskan dua kali? Feb 22, 2024 am 09:06 AM

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.

Mengapakah peristiwa klik dalam js tidak boleh dilaksanakan berulang kali? Mengapakah peristiwa klik dalam js tidak boleh dilaksanakan berulang kali? May 07, 2024 pm 06:36 PM

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.

Bagaimana untuk menyelesaikan masalah yang jQuery tidak dapat memperoleh nilai elemen bentuk Bagaimana untuk menyelesaikan masalah yang jQuery tidak dapat memperoleh nilai elemen bentuk Feb 19, 2024 pm 02:01 PM

Untuk menyelesaikan masalah yang jQuery.val() tidak boleh digunakan, contoh kod khusus diperlukan Untuk pembangun bahagian hadapan, menggunakan jQuery ialah salah satu operasi biasa. Antaranya, menggunakan kaedah .val() untuk mendapatkan atau menetapkan nilai elemen borang adalah operasi yang sangat biasa. Walau bagaimanapun, dalam beberapa kes tertentu, masalah tidak dapat menggunakan kaedah .val() mungkin timbul. Artikel ini akan memperkenalkan beberapa situasi dan penyelesaian biasa, serta memberikan contoh kod khusus. Penerangan Masalah Apabila menggunakan jQuery untuk membangunkan halaman hadapan, kadangkala anda akan menghadapi

Sebab dan penyelesaian untuk kegagalan jQuery .val(). Sebab dan penyelesaian untuk kegagalan jQuery .val(). Feb 20, 2024 am 09:06 AM

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().

Apakah senario yang boleh digunakan untuk pengubah suai peristiwa dalam vue? Apakah senario yang boleh digunakan untuk pengubah suai peristiwa dalam vue? May 09, 2024 pm 02:33 PM

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)

Acara JS mana yang tidak muncul? Acara JS mana yang tidak muncul? Feb 19, 2024 pm 09:56 PM

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 peristiwa Apakah peristiwa menggelegak? Analisis mendalam tentang mekanisme menggelegak peristiwa Feb 20, 2024 pm 05:27 PM

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

Apakah acara JS yang tidak timbul? Apakah acara JS yang tidak timbul? Feb 18, 2024 pm 06:31 PM

Apakah acara JS yang tidak akan timbul? JavaScript ialah bahasa skrip berkuasa yang menambah interaktiviti dan dinamik pada halaman web. Dalam JavaScript, pengaturcaraan dipacu peristiwa adalah bahagian yang sangat penting. Peristiwa merujuk kepada pelbagai operasi yang dilakukan oleh pengguna pada halaman web, seperti klik butang, pergerakan tetikus, input papan kekunci, dsb. JavaScript bertindak balas kepada peristiwa ini melalui fungsi pengendalian acara dan melaksanakan operasi yang sepadan. Acara menggelegak ialah mekanisme biasa semasa pemprosesan acara. Peristiwa menggelegak bermakna apabila an

See all articles