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插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...