我在这个问题上工作了几个小时没有任何成功,希望能在这里得到一些帮助! 我使用tablesorter插件对客户端的表进行排序。 首先,我设置了一个默认的排序顺序并初始化了sorter-plugin:
var defaultSort=[[4,1]];
$("#myTable").tablesorter({sortList:defaultSort});
当这有效时,它不起作用(不排序):
$("#myTable").tablesorter({sortList: [[4,1]]});
看不出这种行为的原因。
稍后,我使用getJSON动态添加列。添加一行后,我必须更新tablesorter并再次订购(因为新行)。为此:阅读当前的“sortList”并尝试应用此列表:
$("#myTable").trigger("update");
sortOrder=$("#myTable")[0].config.sortList;
setTimeout('$("#myTable").trigger("sorton",['+sortOrder+']);',1);
但这不起作用。没有订购。 console.info(sortOrder)返回4而不是[[4,1]]。 为什么呢?
但是如果sortList是硬编码的,那么所有这些代码都可以工作,例如:
$("#myTable").trigger("update");
setTimeout('$("#myTable").trigger("sorton",[[[4,1]]]);',1);
谢谢
答案 0 :(得分:0)
试试这个:
var myTable = $("#myTable");
var sortOrder=myTable.trigger("update")[0].config.sortList;
setTimeout(function(){
myTable.trigger("sorton",[sortOrder]);
},1);
在你编写的第三个例子中
setTimeout('$("#myTable").trigger("sorton",['+sortOrder+']);',1);
当你把它粘在那个字符串中时,sortOrder正在调用toString()。这至少是它无法工作的原因之一。