Dalam jQuery, melampirkan pengendali acara pada elemen HTML yang dicipta secara dinamik memerlukan pendekatan yang berbeza berbanding dengan elemen statik. Elemen HTML dinamik, ditambahkan pada halaman melalui teknik seperti AJAX atau DHTML, tidak mempunyai pengikatan acara melainkan dikendalikan secara eksplisit.
Andaikan anda mempunyai kod jQuery yang melampirkan pengendali acara pada semua elemen dengan kelas ".myclass." Ini berfungsi dengan lancar untuk elemen yang hadir pada pemuatan halaman, tetapi melampirkan pengendali acara pada elemen ".myclass" yang dicipta secara dinamik memberikan cabaran.
Untuk menangani perkara ini, dua teknik boleh digunakan:
Dalam jQuery 1.7 dan lebih baru, kaedah .live() ialah ditamatkan. Sebaliknya, .on() harus digunakan untuk melampirkan pengendali acara. Kaedah ini membolehkan anda menentukan pemilih yang memilih elemen induk dan menggabungkannya dengan pemilih untuk elemen dinamik yang anda mahu mengendalikan acara.
Contohnya:
$('body').on('click', 'a.myclass', function() { // Do something });
Dalam ini contoh, pengendali acara akan dilampirkan pada semua teg dengan kelas myclass dalam teg badan, tidak kira sama ada teg tersebut hadir pada pemuatan halaman atau ditambah secara dinamik kemudian.
Untuk versi jQuery sebelum 1.7, kaedah .delegate() boleh digunakan dan bukannya .on(). Sintaks adalah serupa, membolehkan anda menentukan pemilih induk dan pemilih untuk elemen dinamik:
$('body').delegate('a.myclass', 'click', function() { // Do something });
Menggunakan salah satu daripada teknik ini memastikan bahawa pengendali acara dilampirkan pada elemen HTML statik dan dicipta secara dinamik, menjadikan ia mudah untuk mengendalikan acara pada kandungan dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Melampirkan Pengendali Acara pada Elemen HTML Dicipta Secara Dinamik dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!