我刚刚开始使用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(); };
我希望这有帮助.