Добавление фона блоку при отмеченном чекбокс
Доброго времени суток!
Необходимо при отмеченном чекбоксе произвести смену фона у div. На данный момент удалось сделать смену только у label и только если кликнуть строго на сам чекбокс. Если кликнуть на span, то фон не меняется. Подскажите, пожалуйста, как у div сделать фон при отмеченном чекбокс и при клике на span и input? Спасибо.
<div class="col-lg-3 put_off">
<label id="bx_117848907_1354_compare_link" class="checkbox-checked">
<input type="checkbox" data-entity="compare-checkbox">
<span data-entity="compare-title">Сравнить</span>
</label>
</div>
$(window).load(function() {
$('input[type="checkbox"]').each(function() {
if ($(this).prop('checked')) {
$(this).parent().addClass('checkbox-checked');
}
});
$('input[type="checkbox"]').bind("change", function() {
if ($(this).is(":checked")) {
$(this).parent('label').addClass('checkbox-checked');
} else {
$(this).parent('label').removeClass('checkbox-checked');
}
});
})
.checkbox-checked {
background: #FFCC00;
}
|
_marisha,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.checkbox-checked {
background: #FFCC00;
}
.put_off label{
display: block;
height: 100%;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
$('.put_off').on('change', 'input[type="checkbox"]', function(event) {
$(event.delegateTarget).toggleClass('checkbox-checked', this.checked)
}).find('input[type="checkbox"]').trigger('change');
});
</script>
</head>
<body>
<div class="col-lg-3 put_off">
<label id="bx_117848907_1354_compare_link">
<input type="checkbox" data-entity="compare-checkbox">
<span data-entity="compare-title">Сравнить</span>
</label>
</div>
<div class="col-lg-3 put_off">
<label id="bx_117848907_1354_compare_link">
<input type="checkbox" data-entity="compare-checkbox" checked="checked">
<span data-entity="compare-title">Сравнить</span>
</label>
</div>
</body>
</html>
|
рони, спасибо что откликнулись )
Отлично, фон меняется ) Но только меняется если именно кликнуть на чекбокс. А как сделать чтобы и при клике на сам span фон менялся? Можно ещё сделать так, но по id:
$(window).load(function() {
$('input[type="checkbox"]').each(function() {
if ($(this).prop('checked')) {
document.getElementById('checkbox').style.backgroundColor = "#FCAC7D";
}
});
$('input[type="checkbox"]').bind("change", function() {
if ($(this).is(":checked")) {
document.getElementById('checkbox').style.backgroundColor = "#FCAC7D";
} else {
$(this).parent('label').removeClass('checkbox-checked');
document.getElementById('checkbox').style.backgroundColor = "#fff";
}
});
})
Но Ваш пример лучше :) |
Цитата:
|
Цитата:
|
Быть такого не может
|
_marisha,
:-? |
_marisha,
возможно у вас другая структура, а не та которую вы показали. |
рони, видео
Цитата:
|
рони, видимо "фон" подразумевает все и за текстом, и label, span должны иметь стиль block.
|
| Часовой пояс GMT +3, время: 01:55. |