Многоуровневый список с checkbox

588
15 июня 2017, 06:12

Здравствуйте, есть многоуровневый список с checkbox - ссылка .

Задача была в следующем что бы при выборе родителя выбирались все дочерние элементы. А так же что бы при выборе всех дочерних элементов отмечался родительский элемент. С первый пунктом вопросов не возникло, а вот собственно на втором и остановился. Бросаю часть кода:

        $('.category > input[type="checkbox"]').click(function() {
        if ($(this).prop('checked') == true) {
            $(this).next().next('ul').find('input').prop( "checked", true );
        }else{
            $(this).next().next('ul').find('input').prop( "checked", false );
        }
    });

Думал может можно как-то проверить количество дочерних элементов и сравнить их с количеством активных элементов и если они равны тогда и активируем родительский элемент, ну не совсем понимаю как это реализовать. Помогите пожалуйста.

Answer 1

В вашем случае можно сделать вот так:

$('input[type="checkbox"]').on('change', function() {
    // Находим чекбокс родительской категории
    var categoryInput = $(this).parents('li').eq(1).find('> input[type="checkbox"]');
    // Находим все вложенные инпуты первого уровня
    var inputs = categoryInput.next().next().find('> li > input');
    // Если все вложенные инпуты уже отмечены
    if (inputs.length == inputs.filter(':checked').length) {
        // Изменяем статус флажка и триггерим событие изменния,
        // которое в свою очередь запустит события для родительских категорий
        categoryInput
            .prop('checked', true)
            .trigger('change');
    }
});
READ ALSO
как закрыть браузер при помощи javascript или jquery?

как закрыть браузер при помощи javascript или jquery?

делаю таймер и хотелось бы, чтобы когда таймер заканчивался, закрывался браузерВозможно ли это? знаю, что можно закрыть текущую вкладку методом...

437
Как узнать что пользователь не скроллит?

Как узнать что пользователь не скроллит?

Нашёл код, который определяет в каком направление скроллит пользователь (вверх или вниз) Выглядит код так:

303
Jquery, работа с вновь подгруженным контентом

Jquery, работа с вновь подгруженным контентом

Есть блок cat-link, по нажатию на который срабатывает скриптНажатие на кнопку >Показать ещё

267
Проблема с bootstrap tooltip в связке с bootstrap tabs и bootstrap validator

Проблема с bootstrap tooltip в связке с bootstrap tabs и bootstrap validator

Использую bootstrap tooltip + bootstrap validator, то есть вывожу текст валидатора в tooltip, если создать tooltip на первом табе, при этом находясь на втором, то tooltip...

305