0

多数の情報を取り込む 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」を試しましたが、成功しませんでした。

4

1 に答える 1

0

bind イベントを関数に配置し、ドキュメントの読み込み時に関数を呼び出し、AJAX が完了した後に関数を呼び出したため、タブとコンテンツのクリック イベントを再初期化しました。

于 2013-08-20T14:10:30.263 に答える