Ваш селектор должен быть либо $('#chkbox')
, если вы хотите, чтобы он работал только с одним флажком, с идентификатором chkbox , либо он должен быть $('input:checkbox')
, если вы хотите, чтобы он работал с каждым флажком .
Кроме того, лучше использовать событие change вместо события click, потому что событие click (теоретически) не должно запускаться, если изменение было сделано чем-то другим, кроме щелчка мыши.
Может быть, попробовать что-то вроде этого:
$('input:checkbox').change(function () {
var $this = $(this);
if( $this.is(':checked') ) {
$this.next('label').addClass('etykieta_wybrana');
} else {
$this.next('label').removeClass('etykieta_wybrana');
}
});
См. ДЕМО .
Если это не помогло, попробуйте добавить и удалить классы вручную в HTML, чтобы увидеть, может быть, проблема не в добавлении классов, а в том, что они не показывают эффекты добавления классов при странном рендеринге в режиме причуд или что-то в этом роде.
Убедитесь, что ваш HTML начинается примерно так:
<!doctype html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1">
, чтобы быть уверенным, что вы всегда получаете максимальную отдачу от движка рендеринга IE.