Penjelasan terperinci tentang kemahiran bubbling_javascript acara javascript

WBOY
Lepaskan: 2016-05-16 15:20:45
asal
1341 orang telah melayarinya

Acara adalah salah satu kandungan teras dalam JavaScript Penggunaan acara tidak dapat dielakkan melibatkan konsep penting, iaitu acara menggelegak, mari kita memperkenalkan satu lagi konsep aliran acara:
1. Apakah itu aliran acara:
Model Objek Dokumen (DOM) ialah struktur pokok, yang boleh diwakili dengan jelas oleh rajah berikut.

Jika elemen html mencetuskan peristiwa, maka peristiwa itu akan disebarkan dalam susunan tertentu antara nod pencetus dan nod akar dalam pepohon DOM akan menerima peristiwa yang dicetuskan ini dipanggil Ia aliran peristiwa. Mengikut susunan penyebaran peristiwa, ia boleh dibahagikan kepada dua kategori, satu ialah acara menggelegak dan satu lagi ialah tangkapan peristiwa, yang melibatkan topik yang akan diperkenalkan dalam bab ini:
1. Acara menggelegak:
Apa yang dipanggil bubbling masa bermakna apabila elemen mencetuskan peristiwa, peristiwa itu akan menjadi seperti gelembung, merambat dari elemen pencetus ke semua nod induknya Peristiwa itu akan diterima sehingga ke nod akar peristiwa didaftarkan dalam fungsi pengendali elemen induk, maka walaupun peristiwa itu dicetuskan pada nod anak, fungsi pengendali peristiwa yang didaftarkan pada elemen induk juga akan dicetuskan. Sebagai contoh, dalam ilustrasi di atas, jika peristiwa onclick bagi elemen a dicetuskan, maka elemen induknya p, dokumen dan tetingkap semuanya akan menerima acara ini, dan jika fungsi pemprosesan masa didaftarkan pada elemen induk yang sepadan, maka fungsi pemprosesan acara ini Akan dilaksanakan, lihat contoh kod:

<html>
<head>
<meta charset="utf-8"/>
<title>事件冒泡简单介绍</title>
<script type="text/javascript">
window.onload=function(){
 var table=document.getElementById("mytable");
 table.onclick=function(e){
 var event=e||window.event;
 target=event.srcElement||event.target;
 alert(target.innerHTML);
 }
}
</script>
</head>
<body>
<table width="400" border="1" id="mytable">
<tr>
 <td>脚本之家</td>
 <td>脚本之家</td>
 <td>脚本之家</td>
</tr>
<tr>
 <td>脚本之家</td>
 <td>脚本之家</td>
 <td>脚本之家</td>
</tr>
<tr>
 <td>脚本之家</td>
 <td>脚本之家</td>
 <td>脚本之家</td>
</tr>
</table>
</body>
</html>
Salin selepas log masuk

Tujuan kod di atas adalah untuk memaparkan kandungan dalam sel yang sepadan apabila sel yang sepadan diklik. Walau bagaimanapun, dalam pelaksanaan di atas, pengendali acara onclick tidak didaftarkan untuk setiap sel Sebaliknya, pengendali acara onclick didaftarkan pada jadual elemen induk sel Apabila sel diklik, acara onclick akan dicetuskan juga Ia merambat ke atas dari objek acara, dan elemen jadual mempunyai pengendali acara onclick yang berdaftar Pengendali ini akan dilaksanakan pada masa ini, sudah tentu, masalah lulus parameter objek acara akan ditetapkan di sini. Semua pelayar menyokong acara menggelegak. 2. Tangkapan acara:
Tangkapan acara adalah bertentangan dengan acara menggelegak Apabila elemen diklik, arah penyebaran peristiwa adalah dari elemen akar ke elemen pencetus IE tidak menyokong ini untuk sokongan silang pelayar, biasanya digunakan secara lalai. Model pemprosesan acara gelembung.
2.javascript menghalang kod menggelegak acara
Acara menggelegak sangat berguna dalam senario tertentu, tetapi kadangkala ia mesti dihalang Berikut ialah sekeping contoh kod yang serasi dengan semua pelayar utama untuk mengelakkan acara menggelegak.
Contoh kod:

function stopBubble(e) 
{ 
 if(e&&e.stopPropagation) 
 { 
 e.stopPropagation(); 
 } 
 else
 { 
 window.event.cancelBubble=true; 
 } 
}
Salin selepas log masuk

Kod di atas boleh menghalang acara daripada menggelegak Berikut ialah ulasan ringkas tentang kod:
2. Kod ulasan:

  • 1. fungsi stopBubble(e) {}, fungsi ini digunakan untuk menghalang peristiwa daripada menggelegak dan parameter ialah objek peristiwa.
  • 2. jika(e&&e.stopPropagation){e.stopPropagation();}, tentukan sama ada stopPropagation disokong, gunakan e.stopPropagation(). Fungsi stopPropagation() tidak disokong oleh IE10 dan pelayar di bawah IE10.
  • 3.window.event.cancelBubble=true, penyemak imbas IE semasa menggunakan ini untuk mengelakkan acara menggelegak.

Di atas ialah pengenalan terperinci kepada acara JavaScript yang menggelegak, saya harap ia akan membantu pembelajaran semua orang.

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!