jquery Tablesorter - 如何将sortAppend应用于特定列

时间:2014-06-25 11:48:41

标签: jquery tablesorter

是否可以触发sortAppend到特定列?即 - 如果用户对第4列进行排序,那么我希望在第2列进行第二次排序;否则我希望辅助排序在第1列..

我试过了:

    $(element).tablesorter({
    headers: {
        3: {sortAppend:[[1,0]]}
    }   

如果我总是想追加,它确实可以正常工作..

$(element).tablesorter({
    sortAppend:[[1,0]]
    }

...

1 个答案:

答案 0 :(得分:0)

它可能不是一个理想的解决方案,但它确实有效。此代码不适用于tablesorter *的原始版本,但它适用于我的fork of tablesorter

尝试此代码(demo):

$(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] && list[0][0] !== 3) ? [1, 0] : [2, 0] );
            }
        });
});

*它不能使用原始分类器的原因是原件没有sortBegin事件发生在sortList处理完毕后。如果您尝试使用sortStart事件,则会清除config.sortList,因此您所做的任何更改都将丢失。