Mengemas kini .live() kepada .on() dalam jQuery
Dalam jQuery versi 1.7 dan ke atas, kaedah .live() mempunyai telah digantikan dengan kaedah .on() yang lebih serba boleh. Walau bagaimanapun, apabila beralih kepada .on(), nuansa tertentu perlu dipertimbangkan untuk memastikan pengendalian acara yang betul.
Satu isu biasa yang dihadapi melibatkan elemen ditambah secara dinamik. Semasa .live() melampirkan pengendali acara secara automatik pada kedua-dua elemen sedia ada dan akan datang yang sepadan dengan pemilih tertentu, .on() hanya melampirkan pengendali pada elemen yang sudah ada dalam DOM pada masa panggilan.
Untuk mencapai yang serupa kefungsian kepada .live() apabila berurusan dengan elemen dinamik, adalah perlu untuk mengikat pengendali acara kepada elemen peringkat lebih tinggi (seperti badan dokumen) menggunakan .on() kaedah.
Sebagai contoh, pertimbangkan senario di mana menu lungsur dinamik ditambahkan pada halaman web dan pengendali acara perlu dilampirkan pada menu lungsur ini untuk mengesan perubahan. Menggunakan .on(), pengendali acara akan diikat pada badan dokumen seperti:
$(document.body).on('change', 'select[name^="income_type_"]', function() { alert($(this).val()); });
Sebagai alternatif, adalah disyorkan untuk mengikat pengendali acara sedekat mungkin dengan elemen sasaran, yang meningkatkan prestasi dan mengurangkan isu yang berpotensi.
Atas ialah kandungan terperinci Bagaimanakah Saya Berhijrah daripada .live() jQuery ke .on() untuk Elemen Ditambah Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!