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>
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; } }
Kod di atas boleh menghalang acara daripada menggelegak Berikut ialah ulasan ringkas tentang kod:
2. Kod ulasan:
Di atas ialah pengenalan terperinci kepada acara JavaScript yang menggelegak, saya harap ia akan membantu pembelajaran semua orang.