Dalam JavaScript, mencipta dan memanipulasi kandungan secara dinamik ialah amalan biasa. Walau bagaimanapun, melampirkan acara pada elemen yang dicipta secara dinamik ini boleh menjadi satu cabaran. Satu isu biasa ialah acara tidak dicetuskan untuk elemen yang dibuat selepas pendengar acara dilampirkan.
Untuk menangani isu ini, kami menggunakan perwakilan acara. Delegasi acara membolehkan kami melampirkan pendengar acara tunggal pada elemen induk statik yang merangkumi semua elemen yang dicipta secara dinamik. Apabila peristiwa berlaku pada unsur keturunan, peristiwa itu menggelembung ke elemen induk, membolehkan kami mengendalikannya.
document.addEventListener("click", function (e) { const target = e.target.closest("#btnPrepend"); if (target) { // Do something with `target`. } });
Dengan menggunakan yang paling hampir, kami boleh memastikan bahawa klik berlaku dalam elemen #btnPrepend atau adalah unsur itu sendiri. Pendekatan ini amat berguna apabila elemen yang dicipta secara dinamik mempunyai struktur bersarang dan kami mahu menangkap peristiwa di mana-mana sahaja di dalamnya.
Untuk kemudahan, jQuery menawarkan penyelesaian yang lebih mudah:
$(document).on("click", "#btnPrepend", function () { // Do something with `$(this)`. });
Delegasi acara menyediakan beberapa faedah:
Dengan menggunakan perwakilan acara, kami boleh melampirkan acara dengan berkesan pada elemen yang dicipta secara dinamik dalam JavaScript. Teknik ini meningkatkan prestasi, memudahkan kod dan memastikan pengendalian acara yang konsisten.
Atas ialah kandungan terperinci Bagaimanakah Perwakilan Acara Boleh Menyelesaikan Cabaran Lampiran Acara Elemen Dinamik JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!