Изотоп: выберите и отобразите класс .xx вверху - PullRequest
1 голос
/ 14 марта 2012

Я использую методы сортировки в Isotope (http://isotope.metafizzy.co/docs/sorting.html)), и мне нужно отображать элементы с определенным именем класса CSS, назначенным им в верхней части при щелчке ссылки. Остальные элементы должны оставаться видимыми под отсортированными элементами, поэтомуЯ не могу использовать изотопную фильтрацию.

Мне не очень комфортно с JS / jQuery, поэтому я даже не уверен, правильно ли задан этот код, но в настоящее время мои элементы сортируются по дате, и это здорово,однако он делает это для всех элементов. Я хотел бы, чтобы мой код нашел все элементы с именем класса 'blogs', а затем упорядочил их по дате. Пока это мой код:

    getSortData : {
      blogs : function( $elem ) {
        return $elem.attr('.blogs'), $elem.find('.date').text();
      }
    }

1 Ответ

3 голосов
/ 14 марта 2012

Изотоп выполняет обычную сортировку на основе возвращенного значения функции, которую вы предоставляете.

Поэтому вам нужно вернуть что-то, что помещает элементы .blog в верхнюю часть ..

IЯ предполагаю, что только для даты вы использовали $elem.find('.date').text()

Так что, чтобы изменить это, вы можете просто добавить пробел в начале для элементов, которые .blog

Попробуйте

getSortData : {
  blogs : function( $elem ) {
    var isBlog = $elem.hasClass('blogs');
    return (isBlog?' ':'') + $elem.find('.date').text();
  }
}

Обновление для комментариев

    sortBy: 'initial',
    sortAscending : false,
    itemSelector: '.module',
    getSortData: {
        initial: function($elem) {
            return $elem.find('.date').text();
        },
        blogs: function($elem) {
            var isBlog = $elem.hasClass('blogs');
            return (isBlog ? '9' : '') + $elem.find('.date').text();
        },
...