#jquery #tablesorter
#jquery #сортировщик таблиц
Вопрос:
Возможно ли вызвать sortAppend к определенному столбцу? Т.Е. — если пользователь выполняет сортировку по столбцу 4, то я хочу, чтобы вторичная сортировка выполнялась в столбце 2; в противном случае я хочу, чтобы вторичная сортировка была в столбце 1..
Я пытался:
$(element).tablesorter({
headers: {
3: {sortAppend:[[1,0]]}
}
Если я всегда хочу добавлять, это работает правильно..
$(element).tablesorter({
sortAppend:[[1,0]]
}
??
Ответ №1:
Вероятно, это не идеальное решение, но оно работает. Этот код не работает с оригинальной версией tablesorter *, но он будет работать с моим форком tablesorter .
Попробуйте этот код (демонстрационный):
$(function () {
$('table')
.tablesorter({
theme: 'blue',
widgets: ['zebra', 'columns']
})
.on('sortBegin', function(evt, table){
var c = table.config,
list = c.sortList;
// only modify sort if one column was chosen
if (list.length === 1) {
// if sorting column 3, add column 2
// any other column, add column 1 (zero-based indexes)
list.push( (list[0] amp;amp; list[0][0] !== 3) ? [1, 0] : [2, 0] );
}
});
});
* причина, по которой он не будет работать с исходным сортировщиком таблиц, заключается в том, что в оригинале нет sortBegin
события, которое происходит после sortList
обработки. Если вы попытаетесь использовать sortStart
событие, оно очистит config.sortList
, поэтому все внесенные вами изменения будут потеряны.