javascript - Peristiwa dua klik DIV besar mengandungi DIV kecil Jika anda mengklik DIV kecil, yang besar juga akan dicetuskan.
某草草2017-05-27 17:44:35
0
8
1305
Ada dua peristiwa klik P besar mengandungi p kecil Jika anda klik pada p kecil, yang besar juga akan dicetuskan. Seperti yang ditunjukkan dalam rajah, jika anda klik pada klik di dalam p kecil, p besar juga akan dicetuskan ia?
Mencetuskan jenis acara tertentu pada objek (seperti mengklik onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window) dipanggil acara menggelegak.
//阻止事件冒泡函数
function stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
Saya memikirkan dua penyelesaian: 1. Elakkan kejadian daripada menggelegak. Peristiwa menggelegak dilaksanakan langkah demi langkah dari elemen anak dalam ke elemen induk luar Apabila melaksanakan acara klik elemen anak, acara menyekat menggelegak perlu dipanggil, supaya acara itu tidak boleh dihantar ke lapisan atas ke. laksanakan acara lapisan atas. 2 Laksanakan acara berbeza berdasarkan elemen yang menyebabkan klik. Apabila elemen yang diklik disebabkan oleh elemen kanak-kanak, peristiwa A dilaksanakan Jika ia bukan elemen kanak-kanak, peristiwa B dilaksanakan.
Mengikut amalan biasa, ia tidak akan dicetuskan seperti ini Saya benar-benar ingin tahu pemilih yang anda gunakan untuk mengikat acara klik Adalah lebih baik jika anda menyiarkan kod klik anda dan kod html p
stopPropagation()
Mencetuskan jenis acara tertentu pada objek (seperti mengklik
onclick
事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true
,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document
对象(有些浏览器是window
) dipanggil acara menggelegak.ialah acara menggelegak (tangkap) JS
Penyelesaian seperti ini agak mudah
js menggelegak, batalkan sahaja menggelegak
Gunakan delegasi acara dan masalah ini tidak akan berlaku
Datang kepada saya jika anda tidak faham selepas membaca dua artikel ini:
Saya memikirkan dua penyelesaian:
1. Elakkan kejadian daripada menggelegak.
Peristiwa menggelegak dilaksanakan langkah demi langkah dari elemen anak dalam ke elemen induk luar Apabila melaksanakan acara klik elemen anak, acara menyekat menggelegak perlu dipanggil, supaya acara itu tidak boleh dihantar ke lapisan atas ke. laksanakan acara lapisan atas.
2 Laksanakan acara berbeza berdasarkan elemen yang menyebabkan klik.
Apabila elemen yang diklik disebabkan oleh elemen kanak-kanak, peristiwa A dilaksanakan Jika ia bukan elemen kanak-kanak, peristiwa B dilaksanakan.
Hanya berhenti menggelegak untuk maklumat lanjut tentang kejadian itu, sila lihat di sini /a/11...
Mengikut amalan biasa, ia tidak akan dicetuskan seperti ini Saya benar-benar ingin tahu pemilih yang anda gunakan untuk mengikat acara klik Adalah lebih baik jika anda menyiarkan kod klik anda dan kod html p
anda