2012-01-16 4 views
0

jQuery 1.7.1 - 이전에 선택한 탭의 색인을 얻고 싶습니다. 예 : 1에서 3 번째 탭으로 이동하면 이전에 선택한 탭 인덱스를 0으로 만들고 싶습니다. 어떻게 구현합니까?jQuery tabs - 이전에 선택한 탭의 색인을 얻으십시오.

나는 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> 

자바 스크립트, 선택 또는 쇼 콜백 만 ui.index을 사용하여 현재 선택된 태그를 얻을 수 있습니다 발사 시간으로

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

같은 옵션을 선택합니다. 마크 업과 자바 스크립트가 바람직합니다. 문제를 보여주는 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', ); ,이 선택 콜백 함수를 발생시키는 있지 않습니다. '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')} 
    )} 
});