同位素未分选

Isotope Not Sorting

本文关键字:未分选 同位素      更新时间:2023-09-26

我在无冲突模式下使用同位素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实际上是从API解码的json,在小提琴中是简单的HTML。

看起来您正在对以下字符串调用parseInt'AS.010.232'根据此,parseInt将为这些值返回NaN。引用:

如果第一个字符无法转换为数字,parseInt将返回NaN。

由于所有这些排序值都被解释为NaN,因此实际上可能只是按照某种随机顺序对它们进行排序。

不要调用parseInt,而是尝试直接返回文本:

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

这似乎在这个更新的小提琴中起作用,也与同位素手动输入排序的例子非常相似。