2011-02-19 2 views
4

나는 내가 필요로하는 것보다 이것을 더 어렵게 만들지 만 나는 도움이 필요하다. 추가 기능을 통해 추가되는 몇 가지 jquery UI가 있습니다. 이 탭들은 아약스를 통해 있습니다.'add'및 'tabTemplate'기능을 통해 추가 된 jquery UI 탭의 URL을 어떻게 바꿀 수 있습니까?

탭의 초기 추가시 다음과 같이 tabTemplate을 설정했습니다.

tabTemplate: "<li><a href='#{href}'>#{label},/a><li>" 

그리고 양식이 해당 탭에 제출하면 추가 탭 기능이

$tabs.tabs('add', 'http://thanksforyourhelp/greatly/appreciated/, some_title_var) 

을 통해 이루어집니다는 데이터가 데이터베이스에 기록됩니다. 응답은 데이터베이스에 추가 된 행의 ID를 제공합니다.

다음 번에 특정 탭을 방문하면 실제로 'http : // thanksforyourhelp/much/apprec/ID'링크가 있어야합니다. 여기에서 양식의 응답 (여기 아약스도 마찬가지이기 때문에)을 통해 다시 알려줍니다. . 이렇게하면 "ID"에 대한 데이터베이스의 데이터를 기반으로 페이지의 양식이 미리 채워집니다.

예를 들어 here을 보았습니다. 그러나 href는 문제가되는 탭의 id이며 URL이 아닙니다. 저장된 실제 URL은 어디에 있습니까?

탭 모양은 다음과 같습니다.

<a href="#ui-tabs-6">new</a> 

나는 href를 변경하려고 시도했지만 탭을 클릭하면 내용이 원하는 탭 내에서가 아니라 ajax없이로드됩니다. 여기서 내가 뭘 잘못하고 있니? 당신의 도움을 주셔서 감사합니다.

편집 : 더 이상 존재하지 않는 URL의 참조로 수정 사항이 삭제되었습니다.

+0

작은 예제를 설정할 수 있습니까? –

+0

@AndrewWhitaker 예제를 추가했습니다. 나는 최선을 다해 설명하려고 노력했다. 내가 무엇을 시도하고 더 명확하게해야하는지 알려주세요. – wilbbe01

답변

2

나는 너무 많은 AJAX 전원 탭 근무 한 적이없는,하지만 난 당신이 url 방법 싶은 생각 :

$("#tabs").tabs("url", index, url) 

변경 아약스 가 (원격) 탭이로드 될 URL을 . 지정된 URL은 후속로드의 경우 으로 사용됩니다. 기존 원격 탭의 URL을이 방법으로 으로 변경하고 인 페이지 탭을 원격 탭으로 바꿀 수 있습니다.

+0

@AndrewWhitaker 감사합니다. 나는 이것을보고있다. 나는 전에 이런 것을 시도해 보았고 운이 없었습니다. 나는 내 인덱스 물건을 망쳐 놓았는지 궁금합니다 ... 왜 그것이 작동하지 않는지 설명합니다. – wilbbe01

+0

@AndrewWhitaker 귀하의 제안에 다시 한번 감사드립니다. 앞서 언급 한 것처럼 이전에 시도한 것 같습니다.당신의 대답은 옳은 것 같아요. 그래서 제 마지막에 뭔가 잘못됐다고 생각합니다. 탭에서 다시 클릭하면 일부 요청을하지 않는 것으로 보이는 일부 아파치 로그를 조사 할 때 강제로 탭을 다시로드해야하는지 궁금합니다. 흠. 도움을 주셔서 다시 한 번 감사드립니다. – wilbbe01

+0

@ wilbbe01 : 캐싱 문제 일 수 있습니까? –

1

위 답변은 JQuery 1.9+에서 설명자 here으로 작동하지 않습니다. JQuery와 UI를 탭하려면 1.9+ 당신은 특정 인덱스 탭의 URL을 변경하고 해당 탭을로드 할이

var tabs = $("#tabs"); 
var tab = $(tabs.data('uiTabs').tabs[TAB_INDEX]); 
tab.find('.ui-tabs-anchor').attr('href', "NEW_URL"); 
// If cached initially. Remove cache then 
tab.data("loaded", false); 
tabs.tabs("option", "active", TAB_INDEX); 
tabs.tabs("load", TAB_INDEX); 

이 같은 것을해야한다.

관련 문제