Изотоп:Выберите и отобразите вверху класс .xx
-
13-12-2019 - |
Вопрос
Я использую методы сортировки в 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();
},