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.
В средУ кода вряд ли выложу, он очень-очень-очень-очень длинный. и динамический, не статика. И другие момены думаю тут не задействуются.