jquery – 如何从tablesorter插件获取当前排序顺序?

前端之家收集整理的这篇文章主要介绍了jquery – 如何从tablesorter插件获取当前排序顺序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始使用Christian Bach的优秀TableSorter插件,我需要得到一个列的当前排序方向.我有几栏:

> ID
>名称
>类别

ID和名称设置为不可排序使用

headers:    { 0: {sorter: false},1: {sorter: false} }

我在Name上添加一个点击处理程序,以便它在Category列上触发排序事件.使用示例“Sort table using a link outside the table”,我可以获得名称头来触发类别排序 – 但是它是硬编码的排序在一个方向.

我怎样才能看到当前排序类别列的当前方向,并按相反方向进行排序? (我可以处理翻转的值;因为排序顺序是0或1,我可以XOR的值得到相反的,如var sort; sort ^ = sort; – 我的问题是如何获取当前值.

以下是当前在“名称”列中设置点击处理程序的代码

$("#nameCol").click(function() {
    var sorting = [[2,0]];     /* sort 3rd col (Category) descending */
    $("#SearchResults").trigger("sorton",[sorting] );  /* SearchResults is the ID of the sortable table */
    return false;               /* cancel default link action on a#nameCol */
});

谢谢!

解决方法

表头应该都调用相同的点击事件:
$('th').click(function() {
     handleHeaderClick(this);
});

然后点击处理程序应该添加/删除适用的类.

function handleHeaderClick(hdr) {
    if ($(hdr).hasClass('headerSortDown') == true) {
        $(hdr).removeClass('headerSortDown');
        $(hdr).addClass('headerSortUp');
    } else if ($(hdr).hasClass('headerSortUp') == true) {
        $(hdr).removeClass('headerSortUp');
        $(hdr).addClass('headerSortDown');
    } else {
        $('th',myTable).removeClass('headerSortUp headerSortDown');
        $(hdr).addClass('headerSortDown');
    }
    doSomething();
};

我希望这有帮助.

猜你在找的jQuery相关文章