Изотоп нет сообщения о результатах для комбинированных фильтров

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

Конечно, у кого-то есть решение.

Я был бы очень признателен, если бы кто-нибудь смог мне помочь. У меня есть тестовый сайт, на который я буду ссылаться здесь всего за секунду.

На данный момент вот первая половина моего файла конфигурации изотопов. У меня есть ".message-div", расположенный в нижней части моего #isotopegallery div с применением css "display: none;."

jQuery(window).load(function() {

    var $container = $('#isotopegallery').imagesLoaded(function() {
        $container.isotope({
            itemSelector: '.photo',
            masonry: {
                columnWidth: 161,
                gutter: 10
            },
            transitionDuration: '0.6s'
        });

        // Filters
        //
        var filters = {};
        $('#isotopefilters').on('click', '.menu-item', function() {

            var $this = $(this);
            // get group key
            var $buttonGroup = $this.parents('.filter-title');
            var filterGroup = $buttonGroup.attr('data-filter-group');
            // set filter for group
            filters[filterGroup] = $this.attr('data-filter');
            // combine filters
            var filterValue = '';
            for (var prop in filters) {
                filterValue += filters[prop];
            }

            $container.isotope({filter: filterValue});

            // Possibility
            $container.isotope( 'on', 'layoutComplete',
              function( iso, laidOutItems ) {
                if ( laidOutItems < 1 ) {
                $('.message-div').fadeIn('slow');
                } else {
                $('.message-div').fadeOut('fast');
                }
             })
        });
    });
});

1 ответ

Существует простой способ обойти сообщение "нет результата". Рассмотрим ".photo" как класс для itemSelector. Так как изотоп просто присоединяет ".isotope-hidden" к контейнеру div, если он не соответствует фильтру, число этих элементов div равно сумме всех элементов изотопа в случае "результата нет". Легко:

if($(".isotope-hidden").length == $(".photo").length) {
    $("#mynoresults").show();
    } 
Другие вопросы по тегам