Apabila menulis aplikasi web menggunakan jQuery, kadangkala anda mungkin perlu menggunakan jQuery untuk menukar kelas CSS sesuatu elemen. Ini adalah keperluan yang sangat biasa, tetapi kadangkala anda mungkin menghadapi masalah bahawa penggantian kelas tidak berkuat kuasa. Artikel ini akan meneroka punca masalah ini dan menyediakan beberapa penyelesaian.
Sebab
Dalam kebanyakan kes, jQuery menggantikan kelas CSS akan berfungsi dengan baik. Walau bagaimanapun, anda mungkin menghadapi masalah apabila anda menggunakan elemen yang dijana secara dinamik. Ini kerana jQuery perlu memastikan DOM sedia sebelum anda melaksanakan kodnya. Jika kod anda cuba untuk beroperasi pada DOM yang belum sedia, penggantian kelas tidak akan berkuat kuasa.
Penyelesaian
Berikut adalah beberapa cara untuk menyelesaikan masalah penggantian kelas tidak berkuat kuasa:
Kelebihan menggunakan $(document).ready() ialah ia akan menjalankan kod anda sebaik sahaja DOM sedia. Ini memastikan bahawa kod anda dilaksanakan sebaik sahaja DOM sedia. Berikut ialah contoh:
$(document).ready(function(){ //您的代码 $('button').click(function(){ $('p').removeClass('old').addClass('new'); }); });
Jika halaman anda mengandungi banyak imej atau sumber lain, anda mungkin perlu untuk menunggu semua Sumber dimuatkan sebelum menjalankan kod jQuery. Dalam kes ini $(document).ready() mungkin tidak mencukupi. Dalam kes ini, anda boleh menggunakan $(window).load() seperti berikut:
$(window).on('load', function(){ //您的代码 $('button').click(function(){ $('p').removeClass('old').addClass('new'); }); });
Jika Anda perlu gunakan kaedah yang berbeza daripada $(document).ready() atau $(window).load() untuk memastikan kod anda dilaksanakan selepas DOM sedia. Anda boleh menyemak secara manual sama ada DOM sudah sedia. Berikut adalah contoh:
function checkDom() { if (document.readyState === "complete" || document.readyState === "interactive") { // 需要执行的代码 $('button').click(function(){ $('p').removeClass('old').addClass('new'); }); } else { setTimeout(checkDom, 100); } } checkDom();
Di atas adalah beberapa kaedah untuk menyelesaikan masalah penggantian kelas tidak berkuat kuasa. Ingat, apabila menggunakan elemen yang dijana secara dinamik, anda perlu memastikan DOM sudah sedia. Jika anda masih menghadapi masalah, anda boleh menggunakan alat pembangun untuk menyahpepijat kod anda dan mencari punca isu tersebut.
Kesimpulan
Dalam kebanyakan kes, penggantian kelas jQuery sepatutnya berfungsi dengan baik. Walau bagaimanapun, jika anda menghadapi masalah bahawa penggantian kelas tidak berkuat kuasa, sila gunakan penyelesaian yang dinyatakan di atas. Tidak kira kaedah yang anda gunakan, selagi anda memastikan untuk menjalankan kod anda selepas DOM sedia, jQuery akan memanipulasi kelas CSS anda dengan sewajarnya.
Atas ialah kandungan terperinci Menganalisis dan menyelesaikan masalah bahawa penggantian kelas jquery tidak berkuat kuasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!