Rumah >
Tutorial CMS >
WordTekan >
14 petua jQuery, peringatan dan amalan terbaik untuk meningkatkan kemahiran anda
14 petua jQuery, peringatan dan amalan terbaik untuk meningkatkan kemahiran anda
王林
Lepaskan: 2023-08-30 13:05:09
asal
1388 orang telah melayarinya
Jika terdapat satu perkara buruk tentang jQuery, ia adalah tahap yang sangat rendah untuk bermula sehingga ia cenderung menarik orang yang tidak tahu apa-apa tentang JavaScript. Sekarang, di satu pihak, ini hebat. Walau bagaimanapun, sebaliknya, ia juga boleh membawa kepada beberapa, terus terang, kod buruk yang menjijikkan (sesetengahnya saya tulis sendiri!).
Tetapi itu tidak mengapa; pengekodan sangat teruk sehingga membuatkan nenek anda tercungap-cungap adalah satu upacara. Kuncinya adalah untuk melepasi gunung, dan itulah yang akan kita bincangkan dalam tutorial hari ini.
1. Kaedah mengembalikan objek jQuery
Adalah penting untuk diingat bahawa kebanyakan kaedah mengembalikan objek jQuery. Ini sangat berguna dan membolehkan untuk memautkan fungsi yang kerap kami gunakan.
1
2
3
4
$someDiv
.attr('class', 'someClass')
.hide()
.html('new stuff');
Salin selepas log masuk
Mengetahui bahawa objek jQuery sentiasa dikembalikan, kadangkala kita boleh menggunakan ini untuk mengalih keluar kod berlebihan. Sebagai contoh, pertimbangkan kod berikut:
1
2
varsomeDiv = $('#someDiv');
someDiv.hide();
Salin selepas log masuk
Sebab kami "mencagar" kedudukan elemen someDiv adalah untuk mengehadkan bilangan kali kami perlu melintasi DOM elemen itu kepada sekali sahaja.
someDiv 元素的位置,是为了将我们必须遍历该元素的 DOM 的次数限制为一次。
Kod di atas adalah baik; walau bagaimanapun, anda boleh menggabungkan dua baris dengan mudah menjadi satu sambil mendapat hasil yang sama.
1
2
3
$(document).ready(function() {
// let's get up in heeya
});
Salin selepas log masuk
Dengan cara ini, kita masih menyembunyikan elemen someDiv, tetapi seperti yang kita tahu, kaedah ini juga mengembalikan objek jQuery - yang kemudiannya dirujuk melalui pembolehubah someDiv.
🎜 🎜2. 🎜Cari Pemilih🎜
🎜
Selagi pemilih anda tidak terlalu buruk, jQuery akan mengoptimumkannya sebanyak mungkin, dan anda biasanya tidak perlu terlalu risau tentangnya. Walau bagaimanapun, setelah berkata demikian, terdapat beberapa penambahbaikan yang boleh anda lakukan yang akan meningkatkan sedikit prestasi skrip anda. 🎜
🎜
Satu penyelesaian sedemikian ialah menggunakan kaedah find() jika boleh. Perkara utama ialah tidak memaksa jQuery menggunakan enjin Sizzlenya jika anda tidak perlu. Sudah tentu, kadangkala ini tidak mungkin - dan tidak mengapa, tetapi jika anda tidak memerlukan kos tambahan, jangan carinya. 🎜
1
2
3
$(function() {
// let's get up in heeya
});
Salin selepas log masuk
Salin selepas log masuk
🎜
🎜
Penyemak imbas moden terkini menyokong QuerySelectorAll, yang membolehkan anda melepasi pemilih seperti CSS tanpa memerlukan jQuery. jQuery sendiri juga menyemak fungsi ini. 🎜
🎜Walau bagaimanapun, pelayar lama (iaitu IE6/IE7) tidak memberikan sokongan, yang boleh difahami. Ini bermakna bahawa pemilih yang lebih kompleks ini mencetuskan enjin Sizzle penuh jQuery, yang, walaupun hebat, datang dengan lebih banyak overhed. 🎜
🎜
🎜Sizzle ialah sekumpulan kod hebat yang mungkin saya tidak faham. Walau bagaimanapun, dalam satu ayat, ia mula-mula menukar pemilih anda menjadi "tatasusunan" yang terdiri daripada setiap komponen pemilih. 🎜
1
2
3
4
5
// HANDLE: $(function)
// Shortcut for document ready
if( jQuery.isFunction( selector ) ) {
returnrootjQuery.ready( selector );
}
Salin selepas log masuk
Salin selepas log masuk
🎜Kemudian, dari kanan ke kiri, mula mentafsir setiap item menggunakan ungkapan biasa. Ini juga bermakna bahagian paling kanan pemilih hendaklah sekhusus yang mungkin - contohnya, id atau nama teg. 🎜
🎜Ikhtisar, jika boleh: 🎜
Pastikan pemilih mudah
Gunakan kaedah find(). Dengan cara ini, kami boleh terus menggunakan fungsi asli penyemak imbas dan bukannya menggunakan Sizzle.
Apabila menggunakan Sizzle, optimumkan bahagian paling kanan pemilih apabila boleh.
Konteks?
🎜Anda juga boleh menambah konteks pada pemilih, contohnya: 🎜
1
2
3
4
5
6
varj = jQuery.noConflict();
// Now, instead of $, we use j.
j('#someDiv').hide();
// The line below will reference some other library's $ function.
$('someDiv').style.display = 'none';
Salin selepas log masuk
Salin selepas log masuk
🎜Kod ini mengarahkan jQuery untuk membungkus koleksi semua elemen dalam jQuery menggunakan kelas someElements (yang merupakan anak kepada someContainer). Menggunakan konteks ialah cara yang berguna untuk mengehadkan traversal DOM, tetapi di sebalik tabir, jQuery menggunakan kaedah cari sebaliknya. 🎜
1
2
3
(function($) {
// Within this function, $ will always refer to jQuery
})(jQuery);
Salin selepas log masuk
Salin selepas log masuk
Bukti
1
2
3
4
5
jQuery(document).ready(function($) {
// $ refers to jQuery
});
// $ is either undefined, or refers to some other library's function.
Salin selepas log masuk
Salin selepas log masuk
🎜
🎜 🎜3. 🎜Jangan menyalahgunakan $(this) 🎜
🎜
Tanpa memahami pelbagai sifat dan keupayaan DOM, mudah untuk menyalahgunakan objek jQuery secara tidak perlu. Contohnya: 🎜
// A special, fast, case for the most common use of each
} else{
if( isObj ) {
for( name in object ) {
if( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else{
for( varvalue = object[0];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
}
returnobject;
}
Salin selepas log masuk
Salin selepas log masuk
🎜Jika satu-satunya keperluan kami untuk objek jQuery adalah untuk mengakses harta id tag anchor, maka ini adalah membazir. Lebih baik berpegang pada JavaScript "mentah". 🎜
1
2
3
someDivs.each(function() {
$('#anotherDiv')[0].innerHTML += $(this).text();
});
Salin selepas log masuk
Salin selepas log masuk
🎜
🎜Sila ambil perhatian bahawa terdapat tiga sifat yang harus sentiasa diakses melalui jQuery: "src", "href" dan "style". Atribut ini memerlukan penggunaan getAttribute dalam versi lama IE. 🎜
Bukti
1
2
3
4
5
6
7
varsomeDivs = $('#container').find('.someDivs'),
contents = [];
someDivs.each(function() {
contents.push( this.innerHTML );
});
$('#anotherDiv').html( contents.join('') );
Salin selepas log masuk
Salin selepas log masuk
Berbilang objek jQuery
🎜
Lebih buruk lagi ialah proses berulang kali menanyakan DOM dan mencipta berbilang objek jQuery. 🎜
🎜
Mudah-mudahan anda telah menyedari betapa tidak cekapnya kod ini. Jika tidak, tidak mengapa; kita semua sedang belajar. Jawapannya ialah sama ada melaksanakan pemautan atau "cache" lokasi #elem. 🎜
1
2
3
4
$.getJSON('path/to/json', function(results) {
// callback
// results contains the returned data object
});
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
🎜
🎜 4. 🎜Singkatan kaedah Ready jQuery🎜
🎜
Ia sangat mudah untuk menggunakan jQuery untuk mendengar apabila dokumen sedia untuk tindakan. 🎜
1
2
3
getJSON: function( url, data, callback ) {
returnjQuery.get(url, data, callback, "json");
}
Salin selepas log masuk
Salin selepas log masuk
🎜Namun, anda berkemungkinan besar mengalami fungsi pembalut yang berbeza dan lebih mengelirukan. 🎜
Atas ialah kandungan terperinci 14 petua jQuery, peringatan dan amalan terbaik untuk meningkatkan kemahiran anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
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