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
Lepaskan: 2024-11-24 08:45:11
asal
294 orang telah melayarinya

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><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><div>
Salin selepas log masuk


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();
});
Salin selepas log masuk

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!

sumber:php.cn
Artikel sebelumnya:Mengoptimumkan Perpustakaan Luaran dengan Atribut penangguhan: Meningkatkan Kelajuan Halaman Artikel seterusnya:Bagaimanakah Saya Boleh Melaraskan Ketinggian Iframe Secara Dinamik untuk Mencegah Bar Skrol Menggunakan jQuery atau JavaScript?
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
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan