Val*_*Val 10 jquery tablesorter jquery-plugins
我刚开始使用Christian Bach优秀的TableSorter插件,我需要获得列的当前排序方向.我有几个专栏:
ID和名称设置为不可排序使用
headers: { 0: {sorter: false}, 1: {sorter: false} }
Run Code Online (Sandbox Code Playgroud)
我在Name上添加了一个click处理程序,以便它在Category列上触发sort事件.使用示例" 使用表外链接对表进行排序 ",我可以获取Name标题来触发Category排序 - 但它是硬编码的,可以在一个方向排序.
如何让它查看"类别"列当前排序的当前方向,并按相反的方向排序?(我可以处理翻转值;因为排序顺序为0或1,我可以对该值进行异或,以获得相反的结果,比如var sort; sort ^= sort;- 我的问题是如何获取当前值.
这是当前在Name列上设置click处理程序的代码:
$("#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 */
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
Bre*_*Nee 22
您可以使用内置sortEnd事件来获取sortOrder,如下所述:https://stackoverflow.com/a/4150187/363155
$('#yourtableId').on('sortEnd', function(event) {
// Prints the current sort order to the console
console.log(event.target.config.sortList);
});
Run Code Online (Sandbox Code Playgroud)
你也可以在外面,其他任何地方捕获它(例如在你的函数中,启动ajax,...),并且只在需要时而不是每次点击时,这样的开销会少一点:
lastSortList=$("#mytable")[0].config.sortList;
Run Code Online (Sandbox Code Playgroud)
以及在ajax更新后对其进行排序的示例:
$("#mytable").trigger("sorton", [lastSortList]);
Run Code Online (Sandbox Code Playgroud)
请记住在正确的范围内声明第一行.
小智 1
表头应该全部调用相同的点击事件:
$('th').click(function() {
handleHeaderClick(this);
});
Run Code Online (Sandbox Code Playgroud)
然后单击处理程序应添加/删除适用的类。
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();
};
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
10873 次 |
| 最近记录: |