Rumah > Artikel > hujung hadapan web > Live tidak boleh digunakan dalam jquery
Dalam beberapa tahun kebelakangan ini, bidang pembangunan bahagian hadapan telah berkembang pesat, dan rangka kerja dan perpustakaan telah muncul satu demi satu, antaranya, jQuery masih merupakan salah satu perpustakaan JS yang paling representatif dan berpengaruh. Walau bagaimanapun, walaupun jQuery telah menjadi alat yang sangat diperlukan dalam dunia pembangunan, masih terdapat beberapa situasi di mana kita menghadapi kesukaran, seperti fungsi live() dalam jQuery tidak berfungsi. Artikel ini akan meneroka sebab fungsi live() dalam jQuery tidak boleh digunakan dan memberikan penyelesaian.
1. Peranan live()
Sebelum jQuery 1.3, kami hanya boleh mengendalikan elemen DOM dengan mengikat peristiwa, yang akan diikat sekali pada setiap elemen yang akan dikendalikan, jika ada terlalu banyak elemen, berbuat demikian akan mengurangkan prestasi dengan banyak. Versi 1.3 jQuery memperkenalkan fungsi live(), yang boleh mengikat peristiwa kepada semua elemen yang sepadan dengan pemilih Peristiwa juga boleh dicetuskan secara automatik apabila elemen yang baru ditambah sepadan dengan pemilih ini, sekali gus menyelesaikan masalah operasi berskala besar pada elemen isu.
2. Kecacatan live()
Fungsi live() sememangnya sangat berkuasa, tetapi ia juga mempunyai beberapa kelemahan yang menjadikannya tidak boleh digunakan. Apabila kami cuba menggunakan fungsi live() dalam jQuery 1.9 dan versi yang lebih baru, kami akan mendapati ia telah dialih keluar Versi terbaru jQuery tidak lagi mempunyai fungsi live(). Ini kerana pelaksanaan fungsi live() tidak cukup elegan Ia menggunakan beberapa teknik khas untuk mensimulasikan kesan peristiwa menggelegak dan peristiwa proksi, menyebabkan ia bercanggah dengan fungsi jQuery yang lain.
Selain itu, sebagai tambahan kepada jQuery secara teknikal mengumumkan bahawa live() tidak lagi disokong, bermula dari HTML5, kaedah on() baharu telah diperkenalkan untuk menggantikan bind(), live(), delegate( ) dan kaedah lain, yang bermaksud bahawa dalam pembangunan web moden, menggunakan live() tidak lagi masuk akal.
3. Penyelesaian
Fungsi delegate() ialah kaedah alternatif yang disediakan oleh jQuery untuk memindahkan peristiwa Delegate pemprosesan kepada elemen induk. Gunakan pemilih untuk menentukan elemen yang terikat dengan acara itu, dan mengikat acara itu dengan elemen nenek moyangnya Dengan cara ini, apabila jQuery melaksanakan acara, ia akan menyemak sama ada elemen nenek moyang elemen yang dipilih pada masa ini sepadan dengan pemilih ia sepadan, fungsi akan dilaksanakan. Kaedah ini tidak menghadapi masalah apabila peristiwa ditambah secara dinamik, dan ia dimainkan dalam gelung, serupa dengan live().
Penggunaan adalah seperti berikut:
$(selector).delegate(childSelector,event,data,function)
selector: elemen induk yang digunakan untuk pemprosesan perwakilan.
childSelector: Elemen anak yang perlu diproses.
acara: jenis acara, seperti klik.
data: Data dihantar ke pengendali acara.
fungsi: fungsi panggil balik dilaksanakan apabila acara dicetuskan.
Kod sampel adalah seperti berikut:
$(function(){
$("body").delegate(".btn", "click", function(){ console.log("click btn!"); })
})
fungsi on() ialah fungsi pemprosesan acara yang disediakan sejak versi 1.9 jQuery Acara terikat bukan sahaja boleh mendengar acara DOM, tetapi juga mendengar acara tersuai. jQuery mengesyorkan menggunakan fungsi on() dan bukannya bind(), live() dan delegate() sebelumnya, dan on() ialah kaedah yang disyorkan, yang boleh mencapai hampir semua fungsi fungsi live().
Kaedah penggunaan adalah seperti berikut:
$(selector).on(event,childSelector,data,function)
selector: Elemen untuk acara tersebut terikat.
acara: jenis acara, seperti klik.
childSelector: Pemilih elemen anak, digunakan untuk mengikat acara secara automatik apabila memuatkan elemen anak secara dinamik.
data: Data yang dihantar kepada pengendali acara, boleh kosong.
fungsi: fungsi panggil balik dilaksanakan apabila dicetuskan.
Kod sampel adalah seperti berikut:
$(function(){
$("body").on("click", ".btn", function(){ console.log("click btn!"); })
})
4 pengenalan artikel dan kod sampel ini, kita dapat melihat bahawa walaupun fungsi live() tidak boleh digunakan, kita boleh menggunakan fungsi delegate() dan on() untuk mencapai kesan yang sama dan terus menggunakan jQuery. Dalam pembangunan web moden, dengan kemajuan berterusan pelayar dan teknologi berkaitan bahagian hadapan, kita harus cuba mengelak daripada menggunakan kaedah dan fungsi lapuk dan menggunakan teknologi dan kaedah terkini sebanyak mungkin untuk meningkatkan kecekapan pembangunan dan kualiti kod.
Atas ialah kandungan terperinci Live tidak boleh digunakan dalam jquery. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!