JQuery: изменение стиля элемента при нажатии флажка

У меня есть элементы HTML (с помощью MVC3 Razor)

       <h2 class="price">
              @Html.LabelFor(vm => vm.Price)
              @Html.Encode(@Model.Price)
       </h2>
        <div id="checkbox-price">
              @Html.CheckBoxFor(vm => vm.IncludeToPayment) Include in payment.
        </div>

Как я могу изменить стиль элемента h2 (в этом случае я хочу, чтобы текстовое оформление: проходили сквозь элементы внутри), когда пользователь снял / установил флажок с помощью JQUery?

Заранее спасибо.

2 ответа

Решение
$('#checkbox-price input:checkbox').change(function(){
  if (!$(this).is(':checked')) {
     $('.price').css('text-decoration', 'line-through')
  } else {
     $('.price').css('text-decoration', 'none')
  }
})

или же

  $('#checkbox-price input:checkbox').change(function() { 
            // or $(`input[type="checkbox"]')
            var $obj = $('.price');
            if (!$(this).is(':checked')) {
              $obj.css('text-decoration', 'line-through'); //or addClass                
            } else {
              $obj.css('text-decoration', 'none'); // or addClass                
            }
        })

Вот простой код и живая демонстрация.

Это относится ко всем флажкам

$('input[type="checkbox"]').click(function() {
    if (this.checked) {
        //alert('Checked');
        $("h2").addClass('newclass');
    } else {
        //alert('Unchecked');
        $("h2").removeClass('newclass');
    }
});​

Если вы хотите подать заявку на конкретный флажок, используйте ниже

$('input[type="checkbox"]') to $('input.someclass)

Другие вопросы по тегам