Rumah  >  Artikel  >  hujung hadapan web  >  Perbezaan dan aplikasi menggelegak acara dan menangkap acara

Perbezaan dan aplikasi menggelegak acara dan menangkap acara

WBOY
WBOYasal
2024-01-13 08:07:151239semak imbas

Perbezaan dan aplikasi menggelegak acara dan menangkap acara

Perbezaan dan aplikasi menggelegak acara dan menangkap acara

Menggelegak acara dan menangkap acara ialah dua mekanisme untuk penghantaran acara dalam HTML DOM. Apabila membangunkan aplikasi web, memahami perbezaan dan aplikasinya boleh membantu kami lebih memahami gelagat peristiwa dan memilih mekanisme penyampaian yang sesuai berdasarkan keperluan sebenar. . Dalam erti kata lain, acara akan menggelembung daripada elemen yang dicetuskan kepada elemen induk.

  1. Sebagai contoh, apabila butang dalam kod HTML berikut diklik, acara klik akan menggelembung ke div dan kandungan elemen induknya secara bergilir:
    <body>
        <div>
            <button>Click Me</button>
        </div>
    </body>
  2. Dalam JavaScript, gunakan kaedah addEventListener untuk mendaftarkan pendengar acara dan menangkap peristiwa itu. Gunakan parameter ketiga untuk menentukan sama ada untuk menggunakan mekanisme penghantaran peristiwa menggelegak atau tangkapan peristiwa. Jika parameter ketiga tidak dinyatakan atau ditetapkan kepada palsu, mekanisme penghantaran menggelegak acara akan digunakan.

Berikut ialah contoh kod menggunakan mekanisme penghantaran menggelegak acara:

document.querySelector('button').addEventListener('click', function() {
    console.log('Button clicked');
});

document.querySelector('div').addEventListener('click', function() {
    console.log('Div clicked');
});

document.querySelector('body').addEventListener('click', function() {
    console.log('Body clicked');
});

Apabila kita mengklik butang, 'Butang diklik', 'Div diklik' dan 'Body diklik' akan dicetak dalam urutan.

Event Capturing

Event Capturing bermaksud bahawa apabila acara pada elemen dicetuskan, ia akan merambat ke bawah dari nod akar pokok DOM sehingga ia merambat ke elemen tempat peristiwa itu dicetuskan. Dalam erti kata lain, acara akan ditangkap bermula dari nod akar pokok DOM sehingga elemen yang mencetuskan acara.

  1. Jika anda ingin menggunakan mekanisme penghantaran tangkapan peristiwa, anda boleh menetapkan parameter ketiga kaedah addEventListener kepada benar. Contohnya:
    document.querySelector('button').addEventListener('click', function() {
        console.log('Button clicked');
    }, true);
    
    document.querySelector('div').addEventListener('click', function() {
        console.log('Div clicked');
    }, true);
    
    document.querySelector('body').addEventListener('click', function() {
        console.log('Body clicked');
    }, true);
  2. Apabila kita mengklik butang, 'Body clicked', 'Div clicked' dan 'Button clicked' akan dicetak dalam urutan. Seperti yang anda lihat, peristiwa itu ditangkap bermula dari nod akar pokok DOM, dan kemudian disebarkan kepada unsur-unsur di mana peristiwa itu dicetuskan secara bergilir-gilir.

3. Aplikasi praktikal

Memahami perbezaan antara menggelegak acara dan menangkap acara boleh membantu kami memutuskan cara menangani isu penghantaran acara dalam pembangunan sebenar, dengan itu mencapai fungsi interaktif yang lebih fleksibel.

Sebagai contoh, apabila kami mempunyai berbilang elemen bersarang dalam halaman yang kompleks dan ingin mengklik pada salah satu elemen, hanya peristiwa klik elemen tersebut akan dicetuskan Anda boleh memilih untuk menggunakan tangkapan peristiwa untuk mengendalikannya.

Sebaliknya, jika kita ingin mencetuskan peristiwa klik unsur induknya apabila kita mengklik pada elemen, kita boleh memilih untuk menggunakan mekanisme penghantaran menggelegak acara.

Pada masa yang sama, kami juga boleh menggunakan kaedah stopPropagation() bagi objek acara untuk menghentikan penghantaran acara selanjutnya. Sebagai contoh, apabila kita memanggil kaedah stopPropagation() apabila butang diklik, kita boleh menghalang acara daripada terus berlalu ke atas atau ke bawah.

Ringkasan:

Acara menggelegak dan menangkap acara ialah dua mekanisme untuk penghantaran acara dalam HTML DOM. Memahami perbezaan dan aplikasi mereka boleh membantu kami menangani isu penghantaran acara dengan lebih baik dan mencapai fungsi interaktif yang lebih fleksibel. Pilih mekanisme penghantaran yang sesuai mengikut keperluan sebenar, dan gabungkan kaedah objek acara untuk mengawal penghantaran acara.

Atas ialah kandungan terperinci Perbezaan dan aplikasi menggelegak acara dan menangkap acara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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