Если вы хотите, чтобы столбцы сортировались только по их начальному направлению сортировки, найдите и закомментируйте эту строку в jquery.tablesorter.js:
this.order = this.count++ % 2;
Это строка, которая обновляет столбец для сортировки вобратное направление при следующем нажатии на заголовок.Комментирование этого означает, что порядок сортировки всегда будет одинаковым.Но это также означает, что вы не сможете сортировать в обратном направлении.
У меня была ситуация (которая может быть такой же, как вы описали), когда я хотел, чтобы каждый столбец сортировался в начальном направлении сортировки.в первый раз, когда я нажал, но все еще хотел иметь возможность сортировать другое направление, когда я нажал снова.например.Нажатие на столбец A приведет к сортировке ASC, затем повторное нажатие приведет к сортировке DESC, а затем снова к ASC.Нажатие B приведет к сортировке ASC, затем повторное нажатие A приведет к сортировке ASC.С исходным кодом сортировщика таблиц этой последней сортировкой был бы DESC, поскольку столбец А в качестве предыдущего щелчка был ASC.
Вот как я решил это.Это может быть глупо и неуклюже, но это работает для меня.
В функции buildHeaders найдите эту строку:
this.order = formatSortingOrder( checkHeaderOrder(table, index) );
и добавьте после нее:
this.initialOrder = formatSortingOrder( checkHeaderOrder(table, index) );
Заменить строку, о которой я упоминал ранее:
this.order = this.count++ % 2;
этим:
if($lastColumn == i){
this.order = ++this.count % 2;
}else{
this.order = this.initialOrder;
}
$lastColumn = i;
Теперь,скажем, для столбца A sortInitialOrder был ASC, а для B - DESC.Произойдет следующее:
- Нажмите A: Сортировка A ASC
- Нажмите B: Сортировка B DESC
- Нажмите B: Сортировка B ASC
- Нажмите A: Сортировка ASC