Memelihara Pendengar Acara apabila Mengubah suai innerHTML
Apabila menugaskan kepada innerHTML nod DOM, mana-mana pendengar acara yang dilampirkan pada elemen keturunan akan dimusnahkan. Ini boleh menjadi masalah jika niatnya adalah untuk menambah kandungan tambahan tanpa menjejaskan pengendalian acara sedia ada.
Penyelesaian: insertAdjacentHTML
Kaedah .insertAdjacentHTML() menyediakan penyelesaian yang mengekalkan pendengar acara semasa mengubah suai innerHTML. Dengan menyatakan lokasi kandungan yang dimasukkan menggunakan 'afterend', anda boleh menambahkan kandungan tanpa menjejaskan struktur DOM sedia ada atau pengendali acaranya.
Contoh:
Pertimbangkan coretan kod berikut:
var mydiv = document.getElementById('mydiv'); // Appending content using .innerHTML (destroys event listeners) mydiv.innerHTML += '<p>New paragraph</p>'; // Appending content using .insertAdjacentHTML (preserves event listeners) mydiv.insertAdjacentHTML('beforeend', '<p>New paragraph</p>');
Dalam contoh ini, Kaedah .insertAdjacentHTML() berjaya menambahkan perenggan baharu pada elemen #mydiv sambil mengekalkan pendengar acara sedia ada. Pendekatan ini boleh digunakan pada mana-mana elemen DOM yang memerlukan pengubahsuaian kandungan tanpa menjejaskan pengendalian acaranya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memelihara Pendengar Acara Apabila Mengemas kini HTML dalaman Nod DOM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!