0

jquery ui タブ (ui バージョン 1.9.2 以降) を使用しており、タブは ajax を介してリモートで読み込まれています。

API ドキュメント ( http://api.jqueryui.com/1.9/tabs/#event-load ) では、読み込まれたタブのインデックスを次の方法で取得できることが示唆されているようです。

$(".tabs").tabs({
    load: function(event,ui) { console.log(ui.tab.index());  }
});

ただし、これは機能しません。エラーが発生するのui.tabundefined

console.logui.tabを実行すると、ロードされたばかりのタブの完全な URL が表示されるui.tabので、それは私が期待している種類のオブジェクトではないと思います。も使用してui.panel.index()みましたが、同じundefinedエラーが発生します。

イベントとactivatedを使用してタブのインデックスを取得できますが、それは私が探しているものではありません。activateui.newTab.index()

私は何が欠けていますか?

4

1 に答える 1

4

jQuery UI ドキュメントが更新されていないか、エラーがある (および/または意図した実装が正しくない) ようです。ui.tabドキュメントが示唆するように、jQueryオブジェクトではなく、DOMノードを返しています。

これにより、タブのインデックスが取得されます。

$("#tabs").tabs({
    load:function(event,ui) {
         var index = $(ui.tab).parent().index();

         console.log(index);
    }
});

ui.tabその関数でノードを他の目的に使用する予定がある場合は、最初にキャッシュすることをお勧めします。

于 2013-05-09T18:49:15.407 に答える