一見すると大部分が議論されているように見える問題に遭遇しましたが、見つけたすべてのヒントは役に立ちませんでした。だから私は今、独自のスレッドを試してみてください。
私は jQuery を使用して、年次報告書を検索し、それらをテーブルに表示するデータベース フロントエンドを作成しています。各テーブルは jQuery タブに配置されます。これらのタブは動的に作成されます。そのため、2001 年、2003 年などのタブを使用できます。各タブのコンテンツは、タブの ajax 機能を介して動的に読み込まれます。
これは、タブを作成するスクリプトです。html 本文にはスターター タブが作成されていますが、これは次のように削除されます。
<script>
$(document).ready(function() {
$( "#tabs" ).tabs({ cache:true });
saYears = $.grep(saYears, function(v, k){
return $.inArray(v ,saYears) === k;
});
for(var i=0; i < saYears.length;
{
$("div#tabs ul").append(
"<li><a href='dbfunctions/GetEntriesForYear.php?year="+saYears[i]"'>" +
saYears[i] + "</a></li>"
);
if(i === 0)
{
// Deletes the "starter tab"
$('#tabs ul:first li:eq(0) a').remove();
}
$("div#tabs").tabs("refresh");
}
$( "#tabs" ).tabs( "option", "active", saYears.length-1 );
});
</script>
これは、タブが指している GetEntriesForYear.php ファイルからテーブルを作成する方法に関するスクラッチです。先頭の div error$year はテスト用です。
echo "<div id='error$year'></div>";
echo "<div id='hitlist-$year' class='ui-widget'>";
echo "<table id='table$year' class='tablesorter' class='ui-widget'>";
echo "<thead>";
echo "<tr align='left'>";
echo "<th>Document date</th>";
echo "<th>Author</th>";
echo "<th>Keywords</th>";
echo "<tbody overflow:scroll>";
GetEntriesNow($year);
echo "</tbody></table></div>";
テーブルを埋める関数は、期待されることを行っています。
print "<td>" . $entry['date'] . "</td>";
print "<td>" . $entry['document_reporter'] . "</td>";
print "<td>" . $entry['keyword_' + $i] . "</td>";
加えていくつかのdbのもの。これはすべてうまく機能し、期待どおりです。
私の問題は、いつ、どのように呼び出すか$('#table2013').tablesorter()
です。タブでajaxStop、create/load/activateなどのイベントのヒントをいくつか試しましたが、並べ替えは行われません。何をどこに使用し、どこに配置するかについてのヒントはありますか?