2012-01-16 15 views
0

jQuery 1.7.1 - 以前に選択したタブのインデックスを取得したいと思います。例:最初から3番目のタブに移動した場合、前回選択したタブのインデックスを0にしたいと思います。これを達成するには?jQueryタブ - 以前に選択したタブのインデックスを取得します。

私はthisを試しましたが、うまくいきませんでした。

Iは、選択またはshowコールバックがあなただけui.indexを使用することにより、現在選択されているタグを取得することができます火災時までに次のマークアップ、

<div id="tabs"> 
    <ul> 
     <li><a href="t1" title="content">Gallery</a></li> 
     <li><a href="t2" title="content">Polls</a></li> 
     <li><a href="t3" title="content">Events</a></li> 
    </ul> 
    <div id="content"></div> 
</div> 

Javascriptを、

$('#tabs').tabs( { 
    select: function(e, ui) { 
    var t = $(e.target); 
    alert("Index " + t.data('selected.tabs')); 
    return true; 
}}); 
+0

のようなオプション。好ましくはマークアップとjavascript。この問題を示すhttp://jsfiddle.netのサンプルも素晴らしいでしょう。 –

答えて

2

を持っています。あなたの最善の策は、そのインデックスを追跡し、タブの切り替え時にそれを更新することです。これは、更新前の前のインデックスを教えてくれます。

var previousIndex = 0; 
$('#tabs').tabs( { 
    select: function(e, ui) { 
     //do whatever you need to do with previousIndex 
     alert("The previously selected tab index was " + previousIndex); 
     //track the new index 
     previousIndex = ui.index; 
    } 
}); 
+0

ありがとう@Parrots。私はあなたのアドバイスに従って、それは動作します。もう一つ問題があります。ページを読み込むと、デフォルトでタブが開きます。だから私は次のコードを$ tabs.tabs( 'select'、);これはselectコールバック関数を起動しません。私は 'previousIndex'にクエリ文字列のインデックス値を割り当てることで回避策を見つけました。コールバック関数を起動する他の方法はありますか? – SyAu

+0

わかりませんが、私はコールバックを呼び出すと想定していました。最悪の場合は、あなたの回避策が理にかなっていると思います。 – Parrots

+0

次のコードも動作します。var previousIndex = 0; \t $( '#タブ')タブ({ \t \t選択:機能(例えば、UI){ \t \t \t VAR選択= $ tabs.tabs( 'オプション'、 '選択'); \t \t \t。 \t previousIndex =選択; } \t});誰もがこれについて考えている? – SyAu

0

あなたは選択で $(this).tabs('option', 'selected') を使用することができますいくつかのコードを表示

$("#tabs").tabs({ 
     select: function(event, ui){ 
      console.log($(this).tabs('option', 'selected')} 
    )} 
}); 
関連する問題