Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melampirkan Pendengar Acara pada Elemen Dicipta Secara Dinamik dalam JavaScript?

Bagaimana untuk Melampirkan Pendengar Acara pada Elemen Dicipta Secara Dinamik dalam JavaScript?

DDD
DDDasal
2024-12-20 06:32:09335semak imbas

How to Attach Event Listeners to Dynamically Created Elements in JavaScript?

Melampirkan Acara pada Elemen Dicipta Secara Dinamik dalam JavaScript

Apabila cuba menambahkan elemen dinamik pada senarai yang dibuat secara dinamik dan menambah pendengar acara pada elemen yang dicipta secara dinamik, peristiwa itu mungkin tidak menyala. Ini kerana elemen tidak tersedia pada masa pendengar acara dilampirkan.

Untuk menangani isu ini, perwakilan acara boleh digunakan. Teknik ini melibatkan melampirkan pendengar acara pada elemen peringkat lebih tinggi yang mengandungi elemen yang dicipta secara dinamik.

Sebagai contoh, pertimbangkan kod berikut:

document.addEventListener("click", function(e) {
  const target = e.target.closest("#btnPrepend"); // or any other selector

  if (target) {
    // Do something with 'target'
  }
});

Dalam contoh ini, pendengar acara ialah dilampirkan pada objek dokumen, mendengar peristiwa klik. Fungsi terdekat() digunakan untuk menentukan sama ada peristiwa klik berasal daripada elemen dengan pemilih #btnPrepend (atau mana-mana pemilih yang ditentukan lain). Jika perlawanan ditemui, acara dikendalikan dengan sewajarnya.

Sebagai alternatif, jQuery menyediakan pendekatan yang dipermudahkan kepada perwakilan acara:

$(document).on("click", "#btnPrepend", function() {
  // Do something with `$(this)`
});

Kaedah ini melampirkan pendengar acara pada objek dokumen, mendengar untuk acara klik khusus pada elemen dengan pemilih #btnPrepend.

Atas ialah kandungan terperinci Bagaimana untuk Melampirkan Pendengar Acara pada Elemen Dicipta Secara Dinamik 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