1

私はjqueryプラグインの機能を自分で説明しますが、Webサイトは間違いなく私ができるよりも優れています。ほとんどの場合、非常に単純なプラグインのようです。

http://tablesorter.com/docs/

このプラグを使用して、テーブルが生成された後にテーブルをフィルタリングしています。正常に動作します。問題は、テーブルがライブ更新中であり、テーブルがフィルタリングされた後、新しい更新を受信して​​からテーブルを再度フィルタリングすると、データが重複することです。

私はそれをよく調べてきましたが、プラグインはデータのフィルタリングを可能にする情報のキャッシュを構築しているようです。

私がやりたいのは、更新があるたびにキャッシュを削除して再構築し、重複する情報がテーブル配列に追加されないようにすることです。

クライアントJavaScript:

function appendTables(appendData, index) {
var tabPage = "#tabpage_"+index+" > #myJobs_"+index+" > .userJobs";
userJobsElement = $(tabPage);

userJobsElement.empty();
userJobsElement.append(appendData);
applySortTable();
}

この部分は、動的IDと2つの標準テーブルを使用して複数のテーブルを生成します。

function applySortTable() {
var tables = $('table');
tableCount = tables.length-2;
$("#myJobs_all").tablesorter();
$("#myJobs_noteam").tablesorter();
for (var i = 0; i < tableCount; i++){
 $("#myJobs_"+ i).tablesorter();
}

次に、プラグインを使用してテーブルが生成され、キャッシュを作成すると述べたように、キャッシュをクリアして、これがユーザーに発生した場合に備えて再構築する方法を知っている人はいますか?


アップデート

データの更新は現在機能していますが、現在、さまざまなチーム情報を表示するためのタブベースのテーブルシステムをセットアップしています。更新が処理されると、テーブルは最初のテーブルでのみ更新され、他のテーブルは機能しなくなります。これを処理する方法を知っている人はいますか?

4

1 に答える 1

5

テーブルソータープラグインを再初期化することは正しい方法ではありません。新しいコンテンツを追加した後、updateメソッドをトリガーするだけです。

$("table tbody")
    .append(appendData)
    .trigger('update'); // this event will bubble up

このデモのコード例を確認してください

于 2013-02-15T00:04:31.290 に答える