Una checkbox ha due stati: selezionato e non selezionato. In base allo stato corrente si può eseguire un'azione con jQuery. Il problema è che se proviamo semplicemente a verificare il valore booleano dell'attributo checked
otteniamo risultati non affidabili. Occorre usare un altro approccio.
Possiamo utilizzare il metodo .prop()
sull'evento change
. Questo evento (e non click
) è quello corretto da usare:
$('#check').change(function() {
var $check = $(this),
$div = $check.parent();
if ($check.prop('checked')) {
$div.addClass('test');
} else {
$div.removeClass('test');
}
});
.prop()
verifica se un elemento ha una determinata proprietà associata. Si tratta di un metodo pensato per risolvere le incongruenze delle verifiche operate tramite il metodo .attr()
.