2013-02-15 88 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