2011-09-08 10 views
0

탭이 3 개 있습니다. 기본적으로 Tab1이 선택됩니다. Tab2를 클릭하면; 이전에 선택한 탭을 가져오고 싶습니다. jQuery 탭 - 선택한 탭의 tabtemplate 가져 오기

내가 시도 :이 작동하지 않습니다

var previousTab; 

jQuery(function() { 
    jQuery("#tabs").tabs({ 
      select: function (event, ui){ 
      doSomething(previousTab); 
      previousTab = jQuery(ui.tab); 
      }, 
      create: function (event, ui) { 
      previousTab = jQuery(ui.tab); 
     } 
    }); 
}); 

. 누구든지이 솔루션을 말해 줄 수 있습니까?

미리 감사드립니다.

답변

0

show 기능을 사용하여 해결했습니다. previousTab은 전역 범위의 변수입니다.

jQuery(function() { 
    jQuery("#tabs").tabs({ 
     select: function (event, ui) { 
      previousTab = jQuery(ui.tab); 
     }, 
     show: function (event, ui) { 
      previousTab = jQuery(ui.tab); 
     } 
    }); 
}); 
0

create에서 ui은 빈 개체입니다. 시작시 첫 번째 탭을 선택한 경우 이전 탭 변수를 첫 번째 탭 (create)에 할당하기 만하면됩니다.

하나의 제안 : 이전 탭을 추적하기 위해 전역 변수를 만드는 대신 #tabs 요소에 저장할 수 있습니다. 일반적으로 전역 범위에서 변수를 만드는 것을 피하는 것이 좋습니다.

$('#tabs').tabs({ 
    select: function(event, ui) { 
     var previousTab = $(this).data('previousTab'); 
     if (previousTab !== undefined) 
      console.log(previousTab); 
     $(this).data('previousTab', $(ui.tab)); 
    }, 
    create: function(event, ui) { 
     $(this).data('previousTab', $($(this).find('ul > li > a').get(0))); 
    } 
}); 

실례로 : http://jsfiddle.net/william/yMbhA/2/을 참조하십시오.

+0

답변 해 주셔서 감사합니다. 나는 또한 그것을하는 방법을 발견했다. 하지만 네가 좋아 보인다. – Vabs

+0

그럴 경우 'currentTab'이라고하는 것이 더 적절할 것입니다. ;) –

관련 문제