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>
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!