@alexiusgrey

Как правильно закрыть «прадедушку» конкретного текущего чекбокса после изменения?

find не действует, я пробовал.
В общем, есть список с чекбоксами для категорий товаров и атрибутов, для фильтра. При клике на заголовок категории или конкретного атрибута этот список открывается, по умолчанию он скрыт. Примерно так
jQuery('.side-nav>h5').on( "click", function() {
  jQuery(this).parent('.side-nav').children('.st-accordion').slideToggle();
  jQuery(this).children('span').toggleClass('rotate');
});


Вот так работает, через find нет, я б не городил два пункта вместо одного.
При клике на понравившийся цвет-размер-категорию запускается большой ajax-фильтр, триггер - change.
$('.side-nav>.st-accordion>ul>li input').on('change',function(e){ 
        e.preventDefault(); 
        cosmetic_get_posts();     
    });

Раскрытый список специально находится вне контейнера с отфильтрованными постами, чтобы можно было выбирать еще другие значения после отрабатывания аджакса.
Он остается раскрытым и отображает активное значение. Когда сайдбар с ним был сбоку, это было удобно. По макету он сверху, клиентке было бы удобнее, чтобы раскрытый список обратно сворачивался.

Я пробовал после e.preventDefault() вставить тоже this parent или find, что-то не помогло, или я ошибся во вложенности.
Большая вложенность не просто так - там надо для стилей добавить и индивидуальные классы, а здесь вывести обобщенные для всех списков сразу. Надо позвать контейнер .st-accordion, который обворачивает ul li-шки, в которой лежит не какой-нибудь любой,а вот этот инпут, на котором был триггер change.

В средУ кода вряд ли выложу, он очень-очень-очень-очень длинный. и динамический, не статика. И другие момены думаю тут не задействуются.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы