Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghalang Pengendali Acara Ibu Bapa daripada Melaksanakan Apabila Acara Anak Dicetuskan dalam Objek DOM Bersarang?

Bagaimana untuk Menghalang Pengendali Acara Ibu Bapa daripada Melaksanakan Apabila Acara Anak Dicetuskan dalam Objek DOM Bersarang?

Susan Sarandon
Susan Sarandonasal
2024-11-24 08:45:11318semak imbas

How to Prevent Parent Event Handlers from Executing When a Child Event is Triggered in Nested DOM Objects?

Kekalkan Kemajuan Acara dalam Objek DOM Bersarang

Dalam struktur DOM bersarang di mana pengendali acara ditakrifkan pada pelbagai peringkat, selalunya wajar untuk menghalang pelaksanaan pengendali acara ibu bapa apabila acara kanak-kanak dicetuskan. Pertimbangkan contoh berikut:

<div><pre class="brush:php;toolbar:false"><div>


Dalam struktur ini, satu klik pada mana-mana elemen div menggunakan fungsi "func". Walau bagaimanapun, terdapat isu: klik pada "b" atau "c" mencetuskan fungsi "func" untuk kedua-dua div yang diklik dan div induknya, "a".

Penyelesaian: Kawalan Penyebaran Acara

jQuery menyediakan kaedah untuk menghalang penyebaran peristiwa ke atas pokok DOM. Dengan menambahkan kod berikut sebelum mentakrifkan pengendali acara:

$('#a').add('#b').click(function(event) {
    event.stopPropagation();
});

anda boleh menghalang klik pada "b" atau "c" daripada menyebarkan acara kepada induk mereka, "a". Ini memastikan bahawa hanya fungsi div anak yang diklik akan dilaksanakan.

Dengan mengawal penyebaran peristiwa, anda boleh mengekalkan aliran peristiwa yang diingini dalam struktur DOM bersarang anda dan menghalang pelaksanaan fungsi yang tidak disengajakan.

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Pengendali Acara Ibu Bapa daripada Melaksanakan Apabila Acara Anak Dicetuskan dalam Objek DOM Bersarang?. 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
Artikel sebelumnya:Mengoptimumkan Perpustakaan Luaran dengan Atribut penangguhan: Meningkatkan Kelajuan HalamanArtikel seterusnya:Mengoptimumkan Perpustakaan Luaran dengan Atribut penangguhan: Meningkatkan Kelajuan Halaman

Artikel berkaitan

Lihat lagi