добавить класc при выбраном чекбоксе
Добрый вечер!
есть разметка: <ul> <li class="sf-field-taxonomy-height" <h4>Рост</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="vysokogo-rosta" name="_sft_height[]"> <label class="sf-label-checkbox">Высокого роста</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="niz-rosta" name="_sft_height[]"> <label class="sf-label-checkbox">Низкого роста</label> </li> </ul> </li> <li class="sf-field-taxonomy-height" <h4>Возраст</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="stariy" name="_sft_age[]"> <label class="sf-label-checkbox">Старый</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="molodoy" name="_sft_age[]"> <label class="sf-label-checkbox">Молодой</label> </li> </ul> </li> </ul> подскажите как добавить класс active списку class="dataUl" если включен чекбокс внутри него? |
face2005,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .active{ background-color: #FF00FF; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".dataUl").on("change", function() { this.classList.toggle("active", this.querySelector(":checked")) }) }); </script> </head> <body> <ul> <li class="sf-field-taxonomy-height"> <h4>Рост</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="vysokogo-rosta" name="_sft_height[]"> <label class="sf-label-checkbox">Высокого роста</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="niz-rosta" name="_sft_height[]"> <label class="sf-label-checkbox">Низкого роста</label> </li> </ul> </li> <li class="sf-field-taxonomy-height"> <h4>Возраст</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="stariy" name="_sft_age[]"> <label class="sf-label-checkbox">Старый</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="molodoy" name="_sft_age[]"> <label class="sf-label-checkbox">Молодой</label> </li> </ul> </li> </ul> </body> </html> |
спасибо.. при изменении работает.. но у меня загвоздка в том что это фильтр, когда я выбрал чекбокс, страница обновляется и Ваш скрипт уже обнуляется, но при этом выбранный чекбокс остается.. Вот мне и нужно добавить класс когда этот dataUl уже имеет выбранный чекбокс.
|
мой скрипт что-то не срабатывает
$('.dataUl').each(function(){ if ( $(this).find('input:checkbox:checked') > 0 ){ $( this ).addClass('activeFilter'); } }); |
Цитата:
$('.dataUl input:checkbox:checked').each(function(){ $( this ).closest('.dataUl').addClass('activeFilter'); }); Что ты ожидаешь от своего условия? $(this).find('input:checkbox:checked') > 0 :blink: |
face2005,
так и замените строки 2 - 4 на строку 17 пост#2 |
face2005,
$('.dataUl').each(function(){ this.classList.toggle("activeFilter", this.querySelector(":checked")) }); |
face2005,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .activeFilter{ background-color: #FF00FF; } </style> <script> document.addEventListener("DOMContentLoaded", function() { document.querySelectorAll(".dataUl").forEach(function(el){ el.classList.toggle("activeFilter", !!el.querySelector(":checked")) }); }); </script> </head> <body> <ul> <li class="sf-field-taxonomy-height"> <h4>Рост</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="vysokogo-rosta" name="_sft_height[]" checked="checked"> <label class="sf-label-checkbox">Высокого роста</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="niz-rosta" name="_sft_height[]"> <label class="sf-label-checkbox">Низкого роста</label> </li> </ul> </li> <li class="sf-field-taxonomy-height"> <h4>Возраст</h4> <ul class="dataUl"> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="stariy" name="_sft_age[]"> <label class="sf-label-checkbox">Старый</label> </li> <li class="sf-option"> <input class="sf-input-checkbox" type="checkbox" value="molodoy" name="_sft_age[]"> <label class="sf-label-checkbox">Молодой</label> </li> </ul> </li> </ul> </body> </html> |
всем спасибо! Вы крутые парни, респект!
|
Часовой пояс GMT +3, время: 03:17. |