Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengendalikan Peristiwa pada Elemen Dijana Secara Dinamik dalam jQuery?

Bagaimanakah Saya Boleh Mengendalikan Peristiwa pada Elemen Dijana Secara Dinamik dalam jQuery?

DDD
DDDasal
2025-01-03 17:59:42346semak imbas

How Can I Handle Events on Dynamically Generated Elements in jQuery?

Pengendalian Acara untuk Elemen Dijana Secara Dinamik

Apabila anda menjana elemen secara dinamik menggunakan kaedah seperti load() atau click() jQuery, menangkap peristiwa dicetuskan oleh unsur-unsur ini boleh mencabar. Pengendali acara standard yang dilampirkan pada elemen statik mungkin tidak berfungsi untuk elemen yang dijana secara dinamik.

Penyelesaian: Delegasi Acara

Delegasi acara ialah teknik yang membolehkan anda mengendalikan acara yang menggelembung daripada unsur yang dicipta secara dinamik. Dengan mewakilkan acara kepada elemen nenek moyang statik, anda memastikan ia wujud apabila pengendali acara terikat.

Menggunakan Kaedah .on() jQuery

Untuk versi jQuery 1.7 atau ke atas, gunakan kaedah .on() untuk mewakilkan acara:

$('#modal').on('keyup', 'input', function() {
    handler = $(this).val();
    name = $(this).attr('name');
});

Menggunakan Kaedah .delegate() jQuery (Versi Lama)

Untuk versi jQuery yang lebih lama (1.6 atau ke bawah), gunakan .delegate() sebaliknya kaedah:

// Note the different order of selector and event
$('#modal').delegate('input', 'keyup', function() {
    handler = $(this).val();
    name = $(this).attr('name');
});

Dengan menggunakan perwakilan acara, anda boleh mengendalikan acara dengan berkesan dicetuskan oleh unsur yang dijana secara dinamik tanpa perlu risau tentang susunan penciptaan elemen dan pengikatan peristiwa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Peristiwa pada Elemen Dijana Secara Dinamik dalam jQuery?. 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