Baru -baru ini, film ini perlu dirancang untuk menyediakan fungsi kotak centang yang dipilih semua.
Oh, bukankah ini hal yang sangat sederhana? Satu kotak centang umum, n Beberapa sub-cleckbox. Setelah kotak centang umum dipilih, semua kotak sub-check dipilih. Setelah kotak centang umum tidak dipilih, kotak sub-check tidak dipilih.
Setelah mendapatkan permintaan kecil ini, saya diam -diam senang. Fungsi yang sederhana, oke, itu akan dilakukan dalam dua menit ~~~
Waktu berlalu menit demi menit, dan kuda -kuda di padang rumput yang bergegas di hatiku secara bertahap meningkat dari semua waktu menjadi puluhan juta ~~~
Apa yang terjadi dengan ini?
alert ($ ("#checkbox_all"). attr ("checked"));
Selalu tidak ditentukan?
Nani? ? ?
Mengapa ini terjadi? ? Apakah Anda bodoh di browser? Kemudian dengan tegas mengubah browser untuk menguji, dari chrome ke IE, dari IE ke Firefox. Ini adalah hasil -_- ||
Mungkinkah jQuery telah melakukan perbaikan? ? ? ?
Setelah memeriksa dengan Hubble Telescope dan HD Laser Electron Microscope, kami akhirnya menemukan petunjuknya. . . .
Ternyata ini telah dimodifikasi dalam jQuery versi 1.6:
[Atribut yang diperiksa telah diinisialisasi ketika halaman diinisialisasi dan tidak akan berubah dengan perubahan keadaan.
Dengan kata lain, jika kotak centang dipilih setelah halaman dimuat, maka yang dikembalikan akan selalu diperiksa (saya tidak memilihnya dari awal)
Jika tidak dipilih di awal, yang dikembalikan akan selalu tidak ditentukan! 】
Karena jQuery telah membuat perubahan pada ini, harus ada solusi yang lebih baik yang sesuai:
.prop () adalah senjata untuk menyelesaikan masalah ini!
Penggunaan spesifiknya adalah sebagai berikut:
alert ($ ("#checkbox_all"). prop ("checked"));
Itu akan menjadi benar atau salah saat ini ~~
Jadi, kode aliran ini diubah menjadi berikut:
#check_all adalah kotak centang total yang dipilih semua, dan #check_children adalah kotak centang anak
Salinan kode adalah sebagai berikut:
$ ("#check_all"). ubah (fungsi () {
$ ('. check_children'). prop ("checked", this.checked);
});
atau:
Salinan kode adalah sebagai berikut:
$ ("#check_all"). ubah (fungsi () {
var is_checked = $ (this) .prop ("checked");
$ ('. check_children'). prop ("checked", is_checked);
});
Namun, saya masih sangat suka menggunakan metode pertama. Semakin sedikit kode, semakin baik ~~ tulis lebih sedikit, lakukan lebih banyak!
Sangat nyaman untuk menyelesaikan masalah memilih semua ~~~