ファイル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
が含まれており、クリックすると、次のコードを含むファイルが呼び出されます(基本的に、テーブルを新しい要素で出力し、関数を使用して古いテーブルを新しいテーブルに置き換えます)。refresh
b.php
$("#tablica").load("a.php #tablica");
b.php
load
もちろん、コードが実行されるとTablesorterが機能しないため、代わりにjQuerylive
またはdelegate
(これに何らかの問題があり、Tablesorterを機能させることができないため、live
代わりに使用しています)関数を使用する必要があります新しいテーブル データ。(document).ready
load
しかし問題は、jQuerylive()
関数を使用する場合、Tablesorter プラグインを使用できるようにするために 2 回クリックする必要があることです。最初のクリックでプラグインが「アクティブ化」され、テーブル ヘッダーが 2 回目にクリックされると、テーブルが並べ替えられ、うまく機能します。
ではa.php
、このコードを追加できます
$(document).ready(function() {
$("#feedsTable thead").click();
});
プラグインを「アクティブ化」し、ユーザーがテーブル ヘッダーを最初にクリックすると、テーブルが並べ替えられます。しかし、ファイルに追加$("#feedsTable thead").click();
してリンクをクリックすると、この「ハック」は機能せず、新しいデータを含むテーブルがロードされた後に Tablesorter プラグインを使用できるようにするには、2 回クリックする必要があります。b.php
refresh
基本的に、質問は次のとおりです。私は Tablesorter が jQuery を使用するときに最初のクリックで動作しlive
、2 回目だけでなく動作することを望みます。それを修正する方法は?
どんな助けでも大歓迎です!
ありがとう。