Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Mencetuskan Acara Secara Pengaturcaraan dalam JavaScript?

Bagaimanakah Saya Mencetuskan Acara Secara Pengaturcaraan dalam JavaScript?

DDD
DDDasal
2024-12-19 09:59:08498semak imbas

How Do I Programmatically Trigger Events in JavaScript?

Mencetuskan Acara Secara Pengaturcaraan dalam JavaScript

Dalam JavaScript, acara biasanya dilampirkan pada elemen tertentu menggunakan kaedah addEventListener. Walau bagaimanapun, ada kalanya anda perlu mencetuskan acara secara pengaturcaraan daripada fungsi lain. Saya akan menerangkan kaedah ini.

Pada masa lalu, dua kaedah utama digunakan untuk mencetuskan peristiwa: fireEvent (IE 8 dan ke bawah) dan dispatchEvent (kebanyakan penyemak imbas lain). Walau bagaimanapun, kaedah initEvent tidak lagi disyorkan.

Pendekatan moden adalah untuk mencipta acara menggunakan createEvent atau createEventObject, bergantung pada sokongan penyemak imbas dan mencetuskannya menggunakan dispatchEvent.

Di bawah ialah contoh kod yang mencetuskan peristiwa tersedia data pada elemen tertentu.

var event; // カスタムイベント

if (document.createEvent) {
    // W3C の dispatchEvent を使用
    event = document.createEvent("HTMLEvents");
    event.initEvent("dataavailable", true, true);
    event.eventName = "dataavailable";
    element.dispatchEvent(event);
} else {
    // IE 8 以下用の fireEvent を使用
    event = document.createEventObject();
    event.eventName = "dataavailable";
    event.eventType = "dataavailable";
    element.fireEvent("on" + event.eventType, event);
}

Kod ini mencipta acara tersuai untuk acara yang tersedia data dan mencetuskannya secara pengaturcaraan pada elemen elemen yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Mencetuskan Acara Secara Pengaturcaraan dalam JavaScript?. 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