Изотопи без сортиране

Използвам isotope v1.5.24 и jQuery в режим без конфликт и се опитвам да сортирам данните по число, но не работи.

Настроих jsfiddle тук: http://jsfiddle.net/tgelles/esxw3kne/1/ и можете да видите, че първият елемент трябва да е трети в списъка.

Кодът на изотопа е:

var $j = jQuery.noConflict();
$j(document).ready(function () {
    //set isotope variables
    var $container = $j('.section-container');
    filters = {};

    $container.isotope({
        getSortData: {
            course_number: function ($elem) {
                return parseInt($elem.find('.course-number').text(), 10);
            }
        },
        itemSelector: 'section',
        layoutMode: 'straightDown'
    });
    $container.isotope({
        sortBy: 'course_number'
    });

FWIW 'course_number' sortBy всъщност е json декодиран от API, който в цигулката е прост HTML.


person timmyg    schedule 30.09.2014    source източник


Отговори (1)


Изглежда, че извиквате parseInt на низ като този: 'AS.010.232' Според това, parseInt ще върне NaN за такива стойности. Цитирам от там:

Ако първият знак не може да бъде преобразуван в число, parseInt връща NaN.

Тъй като всички тези стойности за сортиране се интерпретират като NaN, може всъщност да ги сортирате, просто в произволен ред.

Вместо да извиквате parseInt, опитайте просто да върнете текста директно:

getSortData: {
    course_number: function ($elem) {
        return $elem.find('.course-number').text();
    }
},

Това изглежда работи в тази актуализирана цигулка и също е почти идентично с примерите в ръководството на Isotope запис за сортиране.

person Jeff Lambert    schedule 30.09.2014
comment
Много благодаря! Въпреки това, когато опитам този код на жив сайт, той все още не работи. Например: връзка - person timmyg; 30.09.2014
comment
Гледайки DOM за тази страница, не виждам никакво съдържание в контейнера isotope - person Jeff Lambert; 30.09.2014
comment
казано по друг начин, доколкото знам, това е сортиране, просто сортиране на „нищо“. - person Jeff Lambert; 30.09.2014
comment
Хм, това е странно. Когато съм влязъл в WordPress Admin, мога да го видя, но не инкогнито.. Както и да е, ето актуализиран jfiddle с производствени скриптове и стилове: jsfiddle.net/tgelles/4y4gv34b - person timmyg; 30.09.2014
comment
Не съм сигурен защо би било така, въпреки че може да е проблем с вашето маркиране (след бегъл поглед изглежда, че е валидно за мен). Не съм сигурен защо ще работи в моята цигулка, а не във вашата. Опитайте да премахнете някои от другите функции една по една, докато не заработи или не премахнете всичко останало. - person Jeff Lambert; 30.09.2014
comment
Схванах го! Имаше противоречиви изотопни класове в css, което караше числата да се изобразяват неправилно. Вече работи: [jsfiddle]jsfiddle.net/tgelles/4y4gv34b/4 (Сега, за да разберете защо не се показва онлайн. Ако зададете низ на заявка в края на URL адреса, това изобразява ли нещо?) - person timmyg; 01.10.2014
comment
не, все още не виждам нищо на тази страница, опитах да добавя празен низ за заявка (?) без промяна. (какъв низ за заявка бихте искали да опитам?) - person Jeff Lambert; 01.10.2014