2009-11-23 6 views
0

This post jQuery 탭에 여전히 뒤로 버튼이있는 문제에 대해 이야기합니다. 고객이 필요로하는 것은 상당히 간단합니다. 다시 보도 할 때, 그들은 단지보고있는 곳으로 돌아가고 싶습니다. 그러나 jQuery 탭은 사용자가 페이지를 떠날 때 선택된 탭이 아니라 첫 번째 탭을로드합니다.jquery tabs back button

저는 accompanying link을 읽었으며 "계획되어 있고 클라우스가 시간을 찾으면 언제든지 작업하고 있습니다"라고 말했습니다.

누구나 jQuery UI 탭에서 뒤로 버튼 문제를 해결 한 사람이 있습니까?

답변

3

은 뒤로 버튼 문제에 대한 더러운 수정 주기적으로 변경되었는지 확인하기 위해 에 location.hash을 확인하는 것, 그리고이 경우, 화재 해당 링크의 이벤트를 클릭하십시오. zachstronaut.comjQuery Tabs Demo 업데이트 사용 예를 들어

, 당신은 (문서) 콜백을 .ready $에이를 추가 할 수 있습니다, 그리고 효과적으로 더 이상은 500ms (A)보다 지연, 탭을 전환 할 뒤로 버튼을 사용합니다 :

를 당신은 사용자가 탭을 클릭 URL을 업데이트 할 수있는 TabContainer했다 당신의 탭 컨테이너에 클래스가 있다면
j_last_known_hash = location.hash; 
window.setInterval(function() { 
    if(j_last_known_hash != location.hash) { 
     $('#tabs ul li a[href="'+ location.hash +'"]').click(); 
     j_last_known_hash = location.hash; 
    } 
}, 500); 
+0

Genius! 이것은 효과가있었습니다! –

3

탭을 전환 할 때 브라우저 위치를 업데이트하는 데 지치셨습니까? 게시 된 역사 문제 지역권의 솔루션을 사용 http://www.zachstronaut.com/posts/2009/06/08/jquery-ui-tabs-fix.html

+0

이 답변으로 모두 내가 필요로하는 솔루션으로 도움이 위의 대답 : 당신이 선택한 해시 값에 적합한 탭의 수를 반환 할 수있는 몇 가지 getIndexForHash 방법이있는 경우 클릭을 보내고 것은, 당신은 탭을 선택 방법을 사용할 수 있습니다. 솔루션을 사용하면 올바른 탭으로 되돌아 왔지만 여러 탭 사이를 전환 한 경우 해시가 변경된 경우 위의 스크립트없이 1/2 초마다 확인하는 뒤로 버튼이 끊어졌습니다. – billvsd

0

, 당신이 할 수 있습니다 :

$(".tabContainer").tabs({ 
     select: function(event, ui) { 
      window.location.hash = ui.tab.hash; 
     } 
    }); 

을 한 후, 대신 전나무의

var j_last_known_hash = location.hash; 
    window.setInterval(function() { 
     var newHash = location.hash; 
     if(j_last_known_hash != newHash) { 
      var index = getIndexForHash(newHash); 
      $('.tabContainer').tabs("select",index); 
      j_last_known_hash = newHash; 
     } 
    }, 100); 
+0

Atli의 답변에서 많이 빌려 왔지만 click이 호출 된 부분을 select 메소드의 호출로 대체했습니다. – DaveH

+0

내가 언급해야 할 것은 500ms는 사용자가 다른 것들과 상호 작용할 수있는 시간이 길고 응답하지 않는 느낌이 들기위한 것입니다. 100ms로 줄입니다. – DaveH