wladyspb
@wladyspb
Программист

Почему не работает сортировка DataTables в js?

Есть табличка со сложными данными, для правильной сортировки одного из столбцов пишу свою функцию. Содержимое нужного столбца - html с цифрами либо знаком бесконечности, например 15,4 , ∞
Написал плагин для DataTable:
$.extend( $.fn.dataTableExt.oSort, {
        "numinf-pre": function ( item ) {
            var inner = $(item).html();
            if (inner === '∞') {
                inner = Infinity;
            }
            console.log(inner + ' ' + item);
            return inner;
        },
        "numinf-asc": function ( a, b ) {
            var res = (a < b) ? -1 : ((a > b) ? 1 : 0);
            console.log(a + ' '  + b + ' ' + res);
            return res;
        },
        "numinf-desc": function ( a, b ) {
            var res = (a < b) ? 1 : ((a > b) ? -1 : 0);
            console.log(a + ' '  + b + ' ' + res);
            return res;
        }
    } );

Вызов стандартный:
statTable = $('#statstable').dataTable({
        "columnDefs": [
            { "type": "numinf", "targets": 8 }
        ]
    });

Однако сортируется всё равно как строка(
Причём, по консоли видно, что отрабатывает только numinf-pre, asc и desc не отрабатывают
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
wladyspb
@wladyspb Автор вопроса
Программист
Всё, нашёл другой способ делать расширения. Теперь работает)
$.fn.dataTable.ext.type.order['numinf-pre'] = function ( item ) {
var inner = $(item).html();
if (inner === '∞') {
inner = Infinity;
}
return parseFloat(inner);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы