多数の情報を取り込む jQuery UI タブを設定しました。これらのタブの 1 つにテーブルがあります。テーブルには、列の 1 つでクリック イベントがあります。ユーザーがその列をクリックすると、イベントによって何らかのコードが実行され、プログラムによってタブの選択が変更されます。
DOM が最初にレンダリングされる時点ではテーブルがまだ存在しないため、クリック イベントに「on」関数を使用しました。Ajax で作成されたデータを操作できますが、タブの選択を更新できません。誰かが私に何が起こっているのか説明してもらえますか?
これが私のクリックイベントです:
$("#summaryTable td").live("click",function() {
var myCol = $(this).index();
if (myCol == 0) {
var $tr = $(this).closest('tr');
var myRow = $tr.index();
$("#divSummary").show();
$("#storeDetails").hide();
selectedStoreTab = $.trim($(this).html());
$("#store").val(selectedStoreTab);
lastSelectedStoreTab = selectedStoreTab;
//loadData();
var tabDivSelector = "#tab-container-" + selectedMarketTab;
var tabSelector = "#tab-" + selectedStoreTab;
var index = $(tabDivSelector + " a[href='" + tabSelector + "']").parent().index(); // Gets the index correctly!
$(tabDivSelector).tabs( "select", index ); // Doesn't set the tab!
}
});
Firebug でインデックスが適切に設定され、DIV が正しく命名されていることを確認しました。インデックスがタブ セットに適用されていないだけで、その理由がわかりません。また、「on」の代わりに「live」と「delegate」を試しましたが、成功しませんでした。