jquery tablesorter访问内部配置参数

时间:2011-07-11 12:21:44

标签: javascript jquery ajax jquery-plugins tablesorter

我在这个问题上工作了几个小时没有任何成功,希望能在这里得到一些帮助! 我使用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);

谢谢

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()。这至少是它无法工作的原因之一。