Ketika saya mencentang kotak centang, saya ingin itu berubah <p>
#0099ff
.
Ketika saya hapus centang pada kotak centang, saya ingin membatalkannya.
Kode yang saya miliki sejauh ini:
$('#checkbox').click(function(){
if ($('#checkbox').attr('checked')) {
/* NOT SURE WHAT TO DO HERE */
}
})
.click()
dipanggil pada acara klik. Karena itu saya tidak mengerti apa yang Anda maksud dengan "aktifkan" dan "nonaktifkan". Jika kotak centang dicentang, Anda dapat menjalankan fungsia()
. Tetapi Anda harus menulis fungsi terbalik untuk meminta ketika kotak centang tidak dicentang. Saya bingung..bind()
dan.unbind()
acara ke elemen lain berdasarkan pada kondisi kotak centang. Itukah yang Anda cari?prop()
untuk apa pertanyaan ini ingin digunakanattr()
; yangprop()
metode belum dibuat saat itu. Namun, jawabannyathis.checked
mungkin masih bermanfaat.Jawaban:
Saya akan menggunakan
.change()
danthis.checked
:-
Saat menggunakan
this.checked
Andy E telah dilakukan penulisan yang bagus tentang bagaimana kita cenderung menggunakan jQuery secara berlebihan: Memanfaatkan kekuatan jQuery yang luar biasa untuk mengakses properti suatu elemen . Artikel ini khusus memperlakukan penggunaan
.attr("id")
tetapi dalam kasus yang#checkbox
merupakan sebuah<input type="checkbox" />
elemen masalah adalah sama untuk$(...).attr('checked')
(atau bahkan$(...).is(':checked')
) vsthis.checked
.sumber
Coba ini.
Terkadang kita terlalu banyak menuntut jquery. Banyak hal dapat dicapai dengan menggunakan jquery dengan javascript biasa.
sumber
Mungkin saja "this.checked" selalu "aktif". Karena itu, saya merekomendasikan:
sumber
$(':checkbox')
untuk membuatnya bekerja;)lebih baik jika Anda mendefinisikan kelas dengan warna yang berbeda, maka Anda beralih kelas
dengan cara ini kode Anda lebih bersih karena Anda tidak harus menentukan semua properti css (katakanlah Anda ingin menambahkan perbatasan, gaya teks atau lainnya ...) tetapi Anda hanya mengganti kelas
sumber
$('#checkbox').attr('checked')
, namun, jika kita tahu bahwa#checkbox
adalah kotak centang (jika tidak, ID ini agak menyesatkan).this.checked
akan melakukan.Saya menemukan solusi gila untuk menangani masalah kotak centang ini tidak dicentang atau diperiksa di sini adalah algoritma saya ... buat variabel global katakanlah var check_holder
check_holder memiliki 3 status
Jika kotak centang diklik,
Kode di atas dapat digunakan dalam banyak situasi untuk mengetahui apakah kotak centang telah dicentang atau tidak dicentang. Konsep di baliknya adalah untuk menyimpan status kotak centang dalam suatu variabel, yaitu saat dinyalakan, dimatikan. Saya harap logika dapat digunakan untuk menyelesaikan masalah Anda.
sumber
Periksa kode ini:
sumber
sumber
Mungkin Anda bisa menggunakan kode ini untuk mengambil tindakan ketika kotak centang dicentang atau tidak dicentang.
sumber
Saya akan lakukan:
Lihat: https://www.w3schools.com/jsref/prop_checkbox_checked.asp
sumber
Implementasi yang optimal
Demo
sumber
Mengapa tidak menggunakan acara bawaan?
sumber