Изотоп метафиззы - показывать только возможные комбинации

Я пытаюсь создать метод фильтрации с изотопом, где я могу отфильтровать 2 категории - место и работа. Раньше я читал официальную документацию по изотопам о комбинированных фильтрах, и эта часть работает.

Кроме того, после загрузки страницы отображаются только те фильтры, которые отображаются на моей странице (у меня 9 городов и 9 вакансий, но 3 города и 2 вакансии в списке фильтров скрыты, потому что для этих фильтров нет результатов).

Что мне нужно иметь, так это то, что если я выбрал один конкретный город, фильтр для категорий вакансий показывает только те фильтры, которые доступны для этого города.

Была похожая проблема, у одного пользователя было несколько лет назад, но это решение не работает для меня должным образом.

Мой код:

function concatValues( obj ) {
    var value = '';
    for ( var prop in obj ) {
      value += obj[ prop ];
    }
    return value;
}

function checkFilter() {
    $(".stellenangebote.filter a").each(function() {
        var dataFilter = $(this).attr('data-filter');

        if($(".ce_stellenangebot" + dataFilter).length > 0 ) {
            $(this).parent().removeClass('hide');
        } else {
            $(this).parent().addClass('hide');
        }
    });
}

var $container = $('.stellenangebote-liste.isotope');

$container.waitForImages(function() {
    $(".stellenangebote-liste.isotope").addClass("loaded");
    // init
    $container.isotope({
        // options    
        itemSelector: '.ce_stellenangebot'
    });

    checkFilter();
});

var filters = {};
$(".stellenangebote.filter.ort a, .stellenangebote.filter.beruf a").click(function() {

    var buttonGroup = $(this).parents(".stellenangebote");
    var filterGroup = buttonGroup.attr('data-filter-group');
    filters[ filterGroup ] = $(this).attr('data-filter');
    var filterValue = concatValues( filters );

    $(this).parents(".stellenangebote.filter").find("a").removeClass("active");
    $(this).addClass("active");

    checkFilter();

    // init
    $container.isotope({
        // options  
        itemSelector: '.ce_stellenangebot',
        filter: filterValue
    });
    return false;
});

Итак, что мне нужно сделать, так это добавить ".hide" к тем категориям фильтров, которые я не могу объединить с той, которую я нажал.

Я надеюсь, что кто-то может помочь мне и извините за мой плохой английский.:)

0 ответов

Другие вопросы по тегам