Вопрос

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

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

    getSortData : {
      blogs : function( $elem ) {
        return $elem.attr('.blogs'), $elem.find('.date').text();
      }
    }
Это было полезно?

Решение

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

Итак, вам нужно вернуть что-то, что помещает .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();
        },
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top