здесь у вас есть решение: http://jsfiddle.net/zewkG/14/
$('.corner-stamp').click(function() {
$container.isotope('destroy');
grid('.item.odd');
$container.isotope('remove', $('.item:not(.odd)'))
$container.isotope('updateSortData', $('.item.odd'));
});
Edit:
Fixed Ответ: http://jsfiddle.net/zewkG/16/
Проблема здесь:
getSortData : {
fitOrder : function($item) {
var index = $item.index();
Оно должно быть:
getSortData : {
fitOrder : function($item) {
var index = $item.index(selector);
И таким образом мы можем удалить уродливые -1
мы имели в сортировочный логики:
if ($item.hasClass('large')) {
if(index>10){
order = Math.floor((index-1)/(columns))*(columns) + 1.5;
}else{
order = Math.floor((index-1)/(columns-1))*(columns-1) + .5;
}
}
становится
if ($item.hasClass('large')) {
if(index>10){
order = Math.floor((index)/(columns))*(columns) + 1.5;
}else{
order = Math.floor((index)/(columns-1))*(columns-1) + .5;
}
}
Это потому, что
- Когда у нас есть все box, индекс box1 равен 0, индекс box2 1, индекс Box3 является 2 ...
- Когда мы имеем нечетные, индекс Box1 является 0, индекс Box3 является 1, индекс box5 является 2 ...
Так мы нарушаем соответствие между текст ящика и его индекс, чтобы использовать логику сортировки.
Наконец,
$('.corner-stamp').click(function() {
$container.isotope('destroy');
grid('.item.odd');
$('.item:not(.odd)').css('display','none');
});
Нам нужно $('.item:not(.odd)').css('display','none')
, потому что если мы не будем делать, что даже коробки показаны под мультипликационных нечетные коробки.
Edit 2:
Вы помните, что я обнаружил, что http://jsfiddle.net/zewkG/8/ была ошибка: коробки номер 13,17,21 (в конце строки), при нажатии, они пошли в следующий ряд вместо этого в начале строки; поэтому я исправил его в http://jsfiddle.net/zewkG/9/?
Но после этого кажется, что у нас был регрессия, а фиксированная логика сортировки была заменена старой.
Так я установил свой http://jsfiddle.net/zewkG/19/ в http://jsfiddle.net/zewkG/20/
Фиксированные сортировки логики:
if ($item.hasClass('large')) {
if(index>10){
order = Math.floor((index-1)/(columns))*(columns) + 1.5;
}else{
order = Math.floor((index)/(columns-1))*(columns-1) + .5;
}
}else {
order = index + 1;
}
Я боялась, что это должно было бы быть таким образом, есть способ уничтожить с анимацией? – BorisKourt
@BorisKourt Что значит «с анимацией»? Во всяком случае, я не думаю, что могу помочь вам больше, потому что я не привык к jQuery, а тем более к Изотопу. Я мог узнать код ответа выше, используя интуицию, глядя на веб-страницу Изотопа и некоторые тесты. Но я не могу помочь вам с глубинами этой библиотеки ... – Oriol
Эх, это будет работать, поэтому я буду отмечать это как ответ. Под анимацией я имел в виду, что уничтожение изотопа просто мгновенно переходит в новый набор элементов. Обычно, когда вы фильтруете, исчезают неиспользованные с анимацией. Еще раз спасибо за помощь. :) – BorisKourt