フォームが送信されて get にリダイレクトされたときにどのタブがオンになっていたかを jquery-tabs に記憶させる方法を見つけようとしています。たくさんの例を見つけましたが、それらはすべてイベントで使用するように言われてui.index
おりselect
、どちらもドキュメントにはありません。ui.index
あれはそのオブジェクトの一部ではないことを確認しました。イベントで使用$("#MyTabs").tabs("option", "selected")
すると、activate
以前に選択されたタブのインデックスが取得されますが、ユーザーが選択したばかりのタブは取得されません。同様に、タブ 0 を選択してタブ 3 をクリックすると、3 ではなく 0 が返されactive
ます。インデックスがわからないと、このオプションを使用できません。
jqueryがタブに変換している順序付けられていないリストのリスト項目を数えてから、それらを使用してdiv IDからマップするui.newPanel
必要がありますか、それとももっとエレガントな方法がありますか? 適切なインデックスを取得したら、おそらくそれをクエリ文字列に追加します。ユーザーが複数のウィンドウまたはブラウザーのタブを開いている場合、Cookie ソリューションは適切ではありません。
edit :問題は、active
オプションがインデックスを取ることui
ですが、イベントのパラメーターは、タブとタブのコンテンツの要素と要素activate
のみを提供するようです。以前は物件があったので、何か足りないのではないかと思っています。li
div
ui.index
編集:Kushのおかげで私が使用したソリューションは次のとおりです。簡潔にするために一部のコードを省略しました。
function Document_OnReady() {
$("#MyTabs").tabs({
active: $("input.InitialTabIndex").val()
});
function SetInitialTab() {
$("input.InitialTabIndex").val($("#MyTabs").tabs("option", "selected"));
}
function Form_OnSubmit() {
SetInitialTab();
}
サーバーが POST を処理するとき、フォームの値を読み取り、get にリダイレクトするときにクエリ文字列に追加します。
ありがとう!