Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Pengendali Acara JavaScript Gagal Mencetuskan Elemen yang Dilampirkan?

Mengapa Pengendali Acara JavaScript Gagal Mencetuskan Elemen yang Dilampirkan?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 08:45:02852semak imbas

Why Do JavaScript Event Handlers Fail to Trigger on Appended Elements?

Mengapa Pengendali Acara JavaScript Tidak Mencetuskan Elemen yang Dilampirkan

Apabila anda menambahkan elemen baharu pada DOM, seperti dalam HTML yang disediakan kod, pengendali acara JavaScript yang ditakrifkan sebelum ini mungkin tidak mengenali elemen baharu. Ini boleh membawa kepada tingkah laku yang tidak dijangka, kerana kod JavaScript bergantung pada kehadiran elemen tertentu untuk mencetuskan acara.

Untuk menyelesaikan isu ini, anda perlu menggunakan delegasi acara. Perwakilan acara ialah teknik di mana anda melampirkan pengendali acara pada elemen induk yang wujud pada masa halaman dimuatkan. Apabila peristiwa berlaku pada elemen anak yang dilampirkan kemudian, acara itu akan menggelembung ke elemen induk dan pengendali peristiwa yang dilampirkan pada induk akan dicetuskan.

Dalam kod yang disediakan, anda telah melampirkan klik pengendali acara kepada elemen .races. Walau bagaimanapun, apabila elemen baharu ditambahkan pada DOM, jQuery tidak mengenalinya kerana ia tidak hadir semasa jQuery dimulakan pada pemuatan halaman.

Untuk membetulkannya, anda boleh mewakilkan acara klik kepada elemen induk terdekat yang wujud pada pemuatan halaman, seperti div kontena .races. Berikut ialah kod yang dikemas kini:

$(document).ready(function(){
  $('.races-container').on('click', '.races', function(e){
    ... // Your event handler code
  })
});

Dengan mewakilkan acara kepada div .races-container, jQuery akan dapat mengendalikan klik pada kedua-dua elemen .races sedia ada dan yang baru ditambah, memastikan pengendali acara anda dicetuskan dengan betul.

Ingat bahawa delegasi acara ialah teknik biasa apabila bekerja dengan kandungan yang dijana secara dinamik, kerana ia membolehkan anda mengendalikan acara pada elemen yang mungkin tidak wujud pada masa pemuatan halaman.

Atas ialah kandungan terperinci Mengapa Pengendali Acara JavaScript Gagal Mencetuskan Elemen yang Dilampirkan?. 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