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)