Rumah >hujung hadapan web >tutorial js >Mengapa Pengendali Acara jQuery on() Saya Tidak Berfungsi pada Elemen Ditambah Secara Dinamik?

Mengapa Pengendali Acara jQuery on() Saya Tidak Berfungsi pada Elemen Ditambah Secara Dinamik?

DDD
DDDasal
2024-12-06 02:32:12213semak imbas

Why Doesn't My jQuery on() Event Handler Work on Dynamically Added Elements?

Mencari Pembetulan untuk Pengendali Acara on() jQuery

Dalam jQuery, peralihan daripada live() kepada on() untuk pengendalian acara telah menjadi topik perbincangan. Pengguna telah menghadapi masalah di mana pengendali acara on() tidak mencetuskan. Untuk menangani perkara ini, mari kita mendalami masalah dan mengenal pasti penyelesaiannya.

Dokumentasi untuk on() dengan jelas menyatakan bahawa pengendali acara terikat hanya kepada elemen yang wujud pada halaman apabila kod dilaksanakan. Ini sangat berbeza dengan gelagat live(), yang melampirkan pengendali acara pada elemen yang ditambahkan secara dinamik pada halaman.

Untuk mencapai kefungsian yang serupa dengan live(), seseorang perlu menggunakan corak berikut:

$(document.body).on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});

Pendekatan ini mengikat pengendali acara bukan sahaja dengan elemen sedia ada tetapi juga elemen yang akan ditambah pada masa hadapan. Adalah penting untuk mengikat pengendali acara sedekat mungkin dengan elemen sasaran untuk prestasi optimum.

Ringkasnya, apabila beralih daripada live() kepada on(), adalah penting untuk mengikat pengendali acara elemen yang ditambah secara dinamik, seperti seperti yang terdapat dalam senarai juntai bawah. Ini memastikan kod berfungsi seperti yang diharapkan dan bertindak balas kepada interaksi pengguna dengan berkesan.

Atas ialah kandungan terperinci Mengapa Pengendali Acara jQuery on() Saya Tidak Berfungsi pada Elemen Ditambah Secara Dinamik?. 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
Artikel sebelumnya:Penyepaduan HMPL dengan JSON5Artikel seterusnya:Penyepaduan HMPL dengan JSON5