Изотоп: выберите и отобразите класс.xx вверху

Я использую методы сортировки в 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 ответ

Решение

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

Так что вам нужно вернуть что-то, что ставит .blog элементы наверху..

Я предполагаю, что на сегодняшний день только вы использовали $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();
        },
Другие вопросы по тегам