Подтвердить что ты не робот

Как получить jQuery Tablesorter сортировать по убыванию по умолчанию?

Я не могу понять это. Этот вопрос также задавался здесь http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 без ответа.

Я пробовал

    $.tablesorter.defaults.sortInitialOrder = 'desc';

и изменив файл jquery.tablesorter.js по умолчанию на "desc", но он не работает. Когда я нажимаю на заголовки столбцов, первый сортировка по-прежнему возрастает, поэтому пользователю нужно дважды щелкнуть, чтобы опустить значения.

Как я могу получить Tablesorter для сортировки по убыванию по умолчанию?

4b9b3361

Ответ 1

Похож на ошибку в коде tablesorter, или я не понимаю, что должен делать параметр sortInitialOrder. На строке 536 он задает порядок сортировки, просматривая количество сортировок столбца и принимая значение mod 2. Он также должен учитывать значение sortInitialOrder.

Измените строку 536 из

this.order = this.count++ % 2;

к

this.order = this.count++ == 0 ? this.order : (1 - this.order);

И добавьте после этой строки (чтобы первый щелчок на другом столбце дал вам значение по умолчанию)

$headers.not($cell).each( function() {
    this.count = 0;
});

и изменить строку 421 из

o.count = s[1];

к

o.order = o.count = s[1];

чтобы начальный порядок был переопределен, если применяется sortList.

Затем вы можете использовать параметр sortInitialOrder для tablesorter для установки первого порядка сортировки по умолчанию для столбца. Любое упорядочение, предоставленное в списке sortList, переопределит sortInitialOrder для всей таблицы.

Обратите внимание, что это относится к Tablesorter 2.0.

Ответ 2

Попробуйте последнюю версию с сайта tablesorter - это, по-видимому, исправлено где-то между версиями 2.0.3 и 2.0.5.

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#theTable").tablesorter({ 
            sortInitialOrder: 'desc',
            sortList: [[3,1]] // etc.

    }); 
    } 
); 
</script>

..., который работал с последней версией tablesorter, но не с предыдущей версией. Надеюсь, это поможет!

Ответ 3

Просто используйте это, второй элемент в массиве - порядок сортировки (0 = восходящий, 1 = убывающий):

.tablesorter({ sortList: [[0, 1]] });