Добавление фона блоку при отмеченном чекбокс
Доброго времени суток!
Необходимо при отмеченном чекбоксе произвести смену фона у 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, время: 21:39. |