2010-08-21 5 views
1

jQuery의 UI 탭 사용. 이것은 내 코드입니다.Jquery 탭은 탭의 현재 URL을로드합니다.

<div id="tabs"> 
    <ul> 
    <li><a href="#tabs-1">Find a Category</a></li> 
    <li><a href="#tabs-2">Business Name</a></li> 
    <li><a href="#tabs-3">All Categories</a></li> 
    <li><a href="#tabs-4">Business to Business</a></li> 
    </ul> 
    <div style="clear:both;"></div> 
    <div id="tabs-1"><p>Tab 1</p></div> 
    <div id="tabs-2"><p>Tab 2</p></div> 
    <div id="tabs-3"><p>Tab 3</p></div> 
    <div id="tabs-4"><p>Tab 4</p></div> 
    </div> 
</div> 

... 이런 식으로는 완벽하게 작동 내 사이트의 일부 페이지에

$(function() { 
    $('#tabs').tabs(); 
}); 

를 초기화. 다른 페이지에서는 href="#tabs-x"의 앞에 페이지 경로가 붙여집니다 (예 : <a href="#tabs-1">Find a Category</a><a href="/page/path/#tabs-1">Find a Category</a>이됩니다 (이 경우 페이지는/page/path /에 있습니다).이 경우 Ajax를 사용해야하고 페이지가 탭으로 다시로드됩니다.

정말 이상한 점은 모든 페이지에서 발생하지 않는다는 것입니다 (대부분의 경우에도 발생합니다). 예를

http://cbpstage.eblairsolutions.net/online/all-categories/용 - 실패 - http://cbpstage.eblairsolutions.net/online/business-to-business/가 잘 작동합니다.

페이지를 검증했습니다 (완벽하지는 않지만 정확히 동일한 방식으로 실패합니다). 나는 IDM의 울트라 콤팩트를 사용하여 그것들을 비교했습니다. 그것들은 페이지가 다르므로 약간의 차이점이 있지만 href가 다르게 작동하도록하는 원인을 발견 할 수있는 것은 없습니다.

나는 하루 종일 이것을 보냈으며 그걸 보여줄 대머리가 있습니다. 이걸 보려고 다른 사람을 사랑할 것입니다.

+0

? 그냥 정적 HTML 또는 ASPX 또는 PHP 또는 뭔가 다른가요? 또한, 귀하의 탭 div 정적 또는 코드 (즉, 당신이 뭔가를 읽고 데이터베이스에서 div 및 파리에서 건물 의미)에 의해 생성됩니다? –

+0

PHP, Typo3 CMS (v4.4)입니다. 하지만 정적 코드 블록을 사용하고 있습니다. 궁극적으로 더 복잡해 지겠지만 의도적으로 문제를 해결하기 위해 문제를 겪었습니다. –

+0

정적 코드 블록을 사용한다면'href'는'# tabs-X'이고 어떤 식 으로든'/ page/path/# tabs-X'로 바뀌는 것을 의미합니까? 기묘한.나는 PHP 개발자가 아니기 때문에 내가 도울 수 있는지 확신 할 수 없다. –

답변

0

D Hoerster가 올바른 경로에 있습니다. 경로는 서버에서 오는 것 같습니다. 어느 쪽이든 당신은 그것을 추적, 또는 당신은 당신의 $('#tabs').tabs(... 선언하기 전에 다음 jQuery를 추가 할 수 있습니다

$('#tabs a').each(function(){ 
    $(this).attr('href',"#"+$(this).attr('href').split('#')[1]); 
}); 

편집 : 추가 "#"+ 당신이이 페이지를 생성하는 데 사용하는 언어는 무엇

+0

이것은 # 지점까지의 경로를 없앴습니다. 그러나 탭 플러그인은 콘텐츠 div를 인식하지 못하고 자체 플러그인을 작성하고 있습니다. # tab-1, # tab-2는 무시됩니다. href는 # ui-tabs-1, # ui-tabs-2 등으로 생성됩니다. 그런 다음 Ajax 호출을 수행하는 것처럼 ID가 동일한 빈 콘텐츠 div를 만듭니다. 페이지를 끌어 들이지 않지만 내 콘텐츠를 무시합니다. –

+0

죄송합니다.'split' 다음에'tab-n '앞에'#'을 추가하지 않았습니다. 위의 편집을 참조하십시오. –

+0

근본 원인을 추적하는 것이 좋습니다. 그러나 이것은 흥미로운 해결책입니다. 나는 그런 생각을하지 않았다. –

0

내 초기 반응은 당신이 즉시 DIV 탭을 구축한다는 것입니다. 나는 백 엔드 언어/플랫폼을 잘 모르겠지만, 당신이 당신의 URL 참조 빌드 할 때 ASP.NET에서, 당신은 이런 식으로 뭔가를 할 수 있습니다

~/#tab-1

~가 해결 것으로 해석됩니다 루트 디렉토리. 따라서 실제 페이지 (경로가 아님)가 몇 단계 깊이라면, ~은 해당 HREF에 몇 가지 수준을 추가합니다.

정확히 무슨 일이 일어나는 건지는 모르겠지만 그 일은 계속되고있는 것 같습니다. 탭 DIV가 어떻게 구성되는지 조사하고, href를 <a> 태그에 어떻게 추가하고 있는지 확인하십시오. 이 정보 중 일부를 사용하여 질문을 업데이트 할 수 있으면 적절하게 답변을 업데이트하겠습니다.

희망이 도움이됩니다.

관련 문제