2013-02-15 87 views
2

我有一个jquery tablesorter的问题,我正在将数据动态地添加到一个预先存在的表中。Tablesorter没有对动态添加的内容进行排序

根据文档,在添加内容之后,需要完成的所有事情是$("table").trigger("update")用于告诉tablesorter比添加新内容,但实际上这似乎不起作用。

查看http://jsfiddle.net/7Wurn/9/举例。单击HTML表格标题将对列进行排序,但是在添加新行后,新行不会被排序。

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

任何想法是什么错?

回答

3

jQuery中使用datatables时,我也遇到了同样的问题。当您将它追加到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。不知道为什么

+0

伟大的工作 - 我永远不会做到这一点。 – fred2 2013-02-15 19:44:43

+0

@Mottie谢谢。我在检查元素中看到每次添加一行时都会添加一个新的tbody。但后来忽略了它。感谢澄清。 – dejavu 2013-02-16 10:13:06

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标签插入。

我会继续玩,并会更新,如果我得到的东西!

+0

谢谢你的回答。 @Android Decoded把你带到了帖子中。 – fred2 2013-02-15 19:56:40