2012-01-16 3 views
0

jQuery 1.7.1 - Я хотел бы получить индекс ранее выбранной вкладки. Пример: если я перейду на третью вкладку с 1-го, я бы хотел, чтобы предыдущий выбранный индекс был равен 0. Как это сделать?вкладки jQuery - Получить индекс ранее выбранной вкладки

Я пробовал this, но это не сработало.

У меня есть следующий код,

<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

К тому времени, выберите или показывать обратные вызовы огонь вы можете получить только выбранный тег, с помощью ui.index. Лучше всего просто отследить этот индекс и обновить его при переключении табуляции, что покажет вам предыдущий индекс до указанного обновления.

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 выбрать: функцию (е, щ) { \t \t \t вар выбран = $ tabs.tabs ('вариант', 'выбрано'); \t \t \t \t previousIndex = selected; } \t}); У кого-нибудь есть мысли по этому поводу? – SyAu

0

вы можете использовать $(this).tabs('option', 'selected') в выберите: вариант

как

$("#tabs").tabs({ 
     select: function(event, ui){ 
      console.log($(this).tabs('option', 'selected')} 
    )} 
}); 
Смежные вопросы