2

既存のテーブルにデータを動的に追加しているJqueryTablesorterに問題があります。

ドキュメントによると、コンテンツを追加した後、$("table").trigger("update")実行する必要があるのは、新しいコンテンツが追加されたことをテーブルソーターに通知することだけですが、実際にはこれは機能しないようです。

例については、 http://jsfiddle.net/7Wurn/9/を参照してください。HTMLテーブルヘッダーをクリックすると列が並べ替えられますが、新しい行を追加した後、新しい行は並べ替えられません。

Tablesorter Webサイトで使用されている例では、JSFiddleに追加したコードとほぼ同じコードが使用されているため、何かマイナーな問題があるようです。唯一の違いは、$("table").trigger("update");がAjax呼び出し後のコールバックの一部として実行されることです。

何が悪いのか考えてみませんか?

4

2 に答える 2

3

datatablesで使用するときにも同じ問題に直面しましたjQuerytableにデータを追加する場合、にデータを追加することはありませんsame tbody element。代わりに、データがnew tbody要素に追加されます。テーブルの形式は、である必要が<thead></thead>あり<tbody></tbody>ます。

このようなことをします:

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

私はあなたのフィドルhttp://jsfiddle.net/7Wurn/68/を更新しました。また、jquery1.9.1を使用してください。2.0b1では機能しません。理由がわからない

于 2013-02-15T17:46:42.487 に答える
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タグとして挿入されます。

私はそれで遊んでいくつもりです、そして私が何かを得たら更新します!

于 2013-02-15T17:21:18.163 に答える