Rumah  >  Artikel  >  hujung hadapan web  >  Kuasai teknik berkesan untuk mengelakkan peristiwa daripada menggelegak

Kuasai teknik berkesan untuk mengelakkan peristiwa daripada menggelegak

PHPz
PHPzasal
2024-01-13 12:38:06899semak imbas

Kuasai teknik berkesan untuk mengelakkan peristiwa daripada menggelegak

Untuk menguasai teknik berkesan untuk mencegah acara menggelegak, contoh kod khusus diperlukan

Dengan pembangunan berterusan Internet, pembangunan web menjadi semakin penting. Semasa proses pembangunan, kami sering menghadapi situasi di mana peristiwa menggelegak dikendalikan. Apa yang dipanggil acara menggelegak bermakna apabila elemen mencetuskan peristiwa, peristiwa itu akan disebarkan ke elemen atas sehingga ia disebarkan ke elemen akar keseluruhan pepohon DOM. Tingkah laku menggelegak ini kadangkala boleh menyebabkan masalah dalam logik pemprosesan acara kami, menjejaskan fungsi dan kesan interaktif halaman web. Oleh itu, adalah sangat penting bagi pembangun untuk menguasai kemahiran menghalang acara daripada menggelegak.

Dalam artikel ini, saya akan memperkenalkan beberapa teknik berkesan untuk mengelakkan acara menggelegak dan memberikan contoh kod khusus.

  1. stopKaedah Propagation

Kaedah stopPropagation ialah kaedah yang disediakan dalam JavaScript untuk menghentikan penyebaran peristiwa menggelegak. Gunakan kaedah ini untuk menghalang peristiwa daripada disebarkan kepada unsur induk.

Kod sampel:

document.getElementById("innerDiv").addEventListener("click", function(event){
  alert("内部元素被点击");
  event.stopPropagation();
});

document.getElementById("outerDiv").addEventListener("click", function(){
  alert("外部元素被点击");
});

Dalam kod di atas, apabila elemen "innerDiv" diklik, hanya kotak gesaan "elemen dalam telah diklik" akan muncul dan peristiwa klik elemen luaran tidak akan dicetuskan. Ini kerana kami memanggil kaedah event.stopPropagation() dalam pengendali acara elemen dalam untuk mengelakkan acara daripada menggelegak. Kaedah

  1. event.preventDefault

event.preventDefault kaedah digunakan untuk menghalang penyemak imbas daripada melakukan tindakan lalai acara tersebut. Kadangkala tindakan lalai untuk acara boleh menyebabkan acara itu menggelembung. Oleh itu, tujuan menghalang peristiwa menggelegak dicapai dengan menyekat tindakan lalai.

Kod sampel:

document.getElementById("innerLink").addEventListener("click", function(event){
  event.preventDefault();
  alert("内部链接被点击");
});

document.getElementById("innerSpan").addEventListener("click", function(){
  alert("内部span被点击");
});

document.getElementById("outerDiv").addEventListener("click", function(){
  alert("外部元素被点击");
});

Dalam kod di atas, apabila pautan "innerLink" diklik, gelagat lompat lalai penyemak imbas tidak akan dicetuskan dan hanya kotak gesaan "pautan dalam telah diklik" akan muncul. Pada masa ini, walaupun jika elemen induk "outerDiv" bagi "innerLink" diklik, peristiwa klik elemen luaran tidak akan dicetuskan.

  1. Gunakan kaedah e.stopPropagation dan e.stopImmediatePropagation

Dalam sesetengah kes, kita mungkin perlu menggunakan kedua-dua kaedah e.stopPropagation dan e.stopImmediatePropagation dalam fungsi pengendali acara untuk menghalang sepenuhnya penyebaran buih peristiwa, walaupun bersama-sama dengan buih peristiwa, Tiada seorang pun daripada pengendali acara elemen tahap akan dilaksanakan.

Kod contoh:

document.getElementById("innerDiv").addEventListener("click", function(event){
  event.stopImmediatePropagation();
  alert("内部元素被点击");
});

document.getElementById("innerDiv").addEventListener("click", function(){
  alert("内部元素的另一个点击事件处理函数");
});

document.getElementById("outerDiv").addEventListener("click", function(){
  alert("外部元素被点击");
});

Dalam kod di atas, apabila elemen "innerDiv" diklik, hanya kotak gesaan "elemen dalam telah diklik" akan muncul, tanpa mencetuskan pengendali acara klik lain bagi elemen dalam.

Ringkasan:

Dalam pembangunan web, menghalang acara daripada menggelegak adalah sangat penting untuk mengendalikan acara dengan betul. Artikel ini memperkenalkan tiga teknik berkesan untuk mencegah peristiwa menggelegak: menggunakan kaedah stopPropagation, menggunakan kaedah preventDefault, dan menggunakan kaedah stopPropagation dan stopImmediatePropagation. Dengan menggunakan teknik ini secara fleksibel, kami boleh mengawal penyebaran peristiwa dengan lebih baik dan meningkatkan kesan interaktif dan pengalaman pengguna halaman web.

Di atas ialah pengenalan dan contoh kod khusus teknik artikel ini untuk mencegah peristiwa menggelegak. Saya harap pembaca boleh menggunakan teknik ini secara fleksibel dalam pembangunan sebenar untuk menangani masalah menggelegak acara dengan lebih baik.

Atas ialah kandungan terperinci Kuasai teknik berkesan untuk mengelakkan peristiwa daripada menggelegak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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