Rumah >hujung hadapan web >tutorial js >Perbincangan ringkas tentang kemahiran JavaScript events_javascript

Perbincangan ringkas tentang kemahiran JavaScript events_javascript

WBOY
WBOYasal
2016-05-16 16:12:361125semak imbas

1. Aliran acara

Aliran acara menerangkan susunan acara diterima daripada halaman. Walau bagaimanapun, apa yang IE cadangkan ialah aliran menggelegak, manakala Netscape Communicator mencadangkan aliran tangkapan.
Strim acara JavaScript

2. Acara menggelegak

Peristiwa pada mulanya diterima oleh elemen yang paling spesifik (nod dengan tahap sarang paling dalam), dan kemudian merambat ke atas kepada nod yang kurang spesifik (dokumen). Seperti berikut:

Salin kod Kod adalah seperti berikut:



                                                                                                                                                                                                                                                                                                                                                                                   

          
Klik saya



window.onload = function(){
var obj = document.getElementById("test");
​ obj.onclick = function(){
alert(this.tagName);
};
Document.body.onclick = function(){
alert(this.tagName);
};
Document.documentElement.onclick = function(){
alert(this.tagName);
};
Document.onclick = function(){
makluman("dokumen");
};
​ window.onclick = function(){
makluman("tetingkap");
}
};

Jujukan penyebaran acara: div——>body——>html——>dokumen

Nota:

Semua pelayar moden menyokong acara menggelegak, tetapi terdapat beberapa perbezaan dalam pelaksanaan. Acara menggelegak dalam IE5.5 dan versi terdahulu akan melompat terus dari badan ke dokumen (html tidak akan dilaksanakan). Acara gelembung Firefox, Chrome dan Safari sehingga ke objek tetingkap.

3. Hentikan acara menggelegak dan batalkan acara lalai

a. Dapatkan objek acara

Salin kod Kod adalah seperti berikut:
fungsi getEvent(event) {
// window.event IE
// acara bukan IE
acara kembali ||. window.event;
}

b Fungsi: Hentikan acara menggelegak

Salin kod Kod adalah seperti berikut:
fungsi stopBubble(e) {
// Jika objek acara disediakan, ini ialah penyemak imbas bukan IE
jika ( e && e.stopPropagation ) {
// Oleh itu ia menyokong kaedah stopPropagation() W3C
e.stopPropagation();
} lain {
// Jika tidak, kita perlu menggunakan IE untuk membatalkan acara menggelegak
window.event.cancelBubble = benar;
}
}

c. Sekat kelakuan lalai penyemak imbas

Salin kod Kod adalah seperti berikut:
fungsi stopDefault( e ) {
// Sekat tindakan penyemak imbas lalai (W3C)
Jika ( e && e.preventDefault ) {
           e.preventDefault();
} lain {
//Bagaimana untuk menghalang tindakan lalai fungsi dalam IE
          window.event.returnValue = palsu;
}
Kembalikan palsu;
}

Kenyataan:
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