ファイルa.phpにはjQuery Tablesorterテーブルが含まれています。これはテーブルソーターのコードです:
$("#feedsTable thead").live("click", function() {
$("#feedsTable").tablesorter({
widthFixed : true,
dateFormat : "uk",
}).tablesorterPager({
container : $("#pager"),
positionFixed : false
});
});
テーブルの HTML コードを少し削除:
<div id="tablica">
<article class="module width_full">
<div id="pager">
<form>
[snip]tablesort pager stuff...
</form>
</div>
<table id="feedsTable" class="tablesorter" cellspacing="0">
<thead>
<tr>
[snip]table header row...
</tr>
</thead>
<tbody> ... PHP printed table data
また、ファイルにはリンクa.phpが含まれており、クリックすると、次のコードを含むファイルが呼び出されます(基本的に、テーブルを新しい要素で出力し、関数を使用して古いテーブルを新しいテーブルに置き換えます)。refreshb.php$("#tablica").load("a.php #tablica");b.phpload
もちろん、コードが実行されるとTablesorterが機能しないため、代わりにjQueryliveまたはdelegate(これに何らかの問題があり、Tablesorterを機能させることができないため、live代わりに使用しています)関数を使用する必要があります新しいテーブル データ。(document).readyload
しかし問題は、jQuerylive()関数を使用する場合、Tablesorter プラグインを使用できるようにするために 2 回クリックする必要があることです。最初のクリックでプラグインが「アクティブ化」され、テーブル ヘッダーが 2 回目にクリックされると、テーブルが並べ替えられ、うまく機能します。
ではa.php、このコードを追加できます
$(document).ready(function() {
$("#feedsTable thead").click();
});
プラグインを「アクティブ化」し、ユーザーがテーブル ヘッダーを最初にクリックすると、テーブルが並べ替えられます。しかし、ファイルに追加$("#feedsTable thead").click();してリンクをクリックすると、この「ハック」は機能せず、新しいデータを含むテーブルがロードされた後に Tablesorter プラグインを使用できるようにするには、2 回クリックする必要があります。b.phprefresh
基本的に、質問は次のとおりです。私は Tablesorter が jQuery を使用するときに最初のクリックで動作しlive、2 回目だけでなく動作することを望みます。それを修正する方法は?
どんな助けでも大歓迎です!
ありがとう。