Tablesorter不对动态添加的内容进行排序

时间:2013-02-15 17:01:22

标签: javascript jquery tablesorter

我遇到了Jquery Tablesorter的问题,我将数据动态添加到预先存在的表中。

根据文档,在添加内容之后,所有需要做的就是$("table").trigger("update")运行以告知tablesorter而不是添加新内容,但实际上这似乎不起作用。

有关示例,请参阅http://jsfiddle.net/7Wurn/9/。单击HTML表标题将对列进行排序,但在添加新行后,新行不会被排序。

看起来像是次要的东西是错误的,因为在Tablesorter网站上使用的示例使用了与我在JSFiddle上添加的代码几乎相同的代码。唯一的区别是$("table").trigger("update");在Ajax调用之后作为回调的一部分运行。

任何想法有什么不对?

2 个答案:

答案 0 :(得分:3)

datatables中使用jQuery时,我也遇到了同样的问题。当您将其附加到table时,您不会将数据附加到same tbody element。而是将您的数据添加到new tbody元素。表格格式应为<thead></thead>,然后为<tbody></tbody>

做这样的事情:

$("#tableId tbody").append(someContent);

我更新了你的小提琴http://jsfiddle.net/7Wurn/68/。另请使用jquery 1.9.1。它不适用于2.0b1。不知道为什么

答案 1 :(得分:1)

我一直在玩这个,发现它与在DOM中呈现tbody标签的方式有关。

通过执行以下操作,我让它为第一个条目工作:

$("table tbody:first").before('<tr><td>Aaphod</td><td>Beeblebrox</td> <td>28</td> <td>$9.99</td> <td>20%</td><td>jul 6, 2006 8:14 am</td></tr>'); 

那是因为它将它粘贴到第一个tbody中,而tablesorter识别它。但是,后续添加会导致它作为新的tbody标记插入。

我会继续玩它,如果我得到了什么就会更新!