2013-03-28 4 views
12

몇 가지 일반적인 탭 콘텐츠가 있는데 정말 도움이 필요합니다. 사용자가 외부 앵커 링크 (http://www.url.com#content2)를 통해 특정 탭으로 이동하려고하면 탐색 링크가 활성화되고 올바른 탭이 표시됩니다.앵커 링크가있는 탭 열기

도움 주셔서 감사합니다.

HTML

<nav class="inner-nav"> 
    <ul> 
     <li><a href="#content1">Inner nav navigation link1</a></li> 
     <li><a href="#content2">Inner nav navigation link2</a></li> 
     <li><a href="#content3">Inner nav navigation link3</a></li> 
    </ul> 
</nav> 

<section class="tab-content" id="content1"> 
    <article> 
     content1 goes here 
    </article> 
</section> 

<section class="tab-content" id="content2"> 
    <article> 
     content2 goes here 
    </article> 
</section> 

<section class="tab-content" id="content3"> 
    <article> 
     content3 goes here 
    </article> 
</section> 

JAVASCRIPT

$(document).ready(function() { 
     $(".tab-content").hide(); 
    $(".tab-content:first").show(); 
    $(".inner-nav li:first").addClass("active"); 

    $(".inner-nav a").click(function(){ 
     $(".inner-nav li").removeClass("active"); 
     $(this).parent().addClass("active"); 
     var currentTab = $(this).attr("href"); 
     $(".tab-content").hide(); 
     $(currentTab).show(); 
     return false; 
    }); 
}); 

난 당신이 탐색을 클릭하면 특정 탭으로 이동하려는 경우, 모든 작품을 좋아하지만, here 그래서 라이브 예를 kajag.com/themes/book_your_travel/location.html#sports_and_nature 올바른 탭이 열리지 않습니다. 난 그냥 여기에 비슷한 (공개, 내 사이트) 완료했습니다

+0

당신은 어떤 오류가있다? – bipen

+0

문제가되는 것 같습니다. [** FIDDLE **] (http://jsfiddle.net/hBKuu/)에서 잘 작동합니까 ?? – adeneo

+0

아니, 사용자가 탐색 링크를 클릭하면이 자바 스크립트는 잘 작동합니다. 그러나 사용자가 외부 앵커 링크를 통해 특정 탭을 열려고하면 .js가 작동하지 않습니다. –

답변

15

당신은 단순히 페이지가로드 될 때 해시를 확인하여이 문제를 해결할 수있는 다음 같은 오른쪽 탭에서 클릭을 트리거 :

$(function() { 
    $(".tab-content").hide().first().show(); 
    $(".inner-nav li:first").addClass("active"); 

    $(".inner-nav a").on('click', function (e) { 
     e.preventDefault(); 
     $(this).closest('li').addClass("active").siblings().removeClass("active"); 
     $($(this).attr('href')).show().siblings('.tab-content').hide(); 
    }); 

    var hash = $.trim(window.location.hash); 

    if (hash) $('.inner-nav a[href$="'+hash+'"]').trigger('click'); 

}); 
+1

이것은 그 것이다. 고마워요! –

1

: http://kronia.com.au/#showcase 직접 해시를 사용하지 않는 때문에

(즉, 페이지가 사업부로 이동하지 않아야을, 그것은 숨길해야/쇼 값에 따라 탭이 있음) 먼저 해시를 확인해야합니다 (링크에 해시가 없을 수도 있음).

if (window.location.hash){ 
    someFunction(); 
} 

그런 다음 해시 값에 기초하여/숨기기 탭을 나타낸다. 전환을 수행하는 경우 '시작'및 '종료'탭을 정의하십시오. 그렇지 않으면 표시 할 탭 만 정의하십시오. 예를 들면 :

function someFunction(_to, _from){ 
    _to.removeClass('kr-dormant').addClass('kr-next'); 
    _from.removeClass('kr-current').addClass('kr-dormant'); 
    _to.removeClass('kr-next').addClass('kr-current'); 
} 
+0

감사합니다. 비록 이것이 내 경우에 최적의 해결책이 될지 확신 할 수는 없지만. –

0

이것은 정확히 동작입니다 당신을

예제 코드 : https://jqueryui.com/resources/demos/tabs/default.html

  • 초 탭으로

    <html lang="en"> 
    <head> 
        <meta charset="utf-8"> 
        <title>jQuery UI Tabs - Default functionality</title> 
        <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
        <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
        <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
        <link rel="stylesheet" href="/resources/demos/style.css"> 
        <script> 
        $(function() { 
        $("#tabs").tabs(); 
        }); 
        </script> 
    </head> 
    <body> 
    
    <div id="tabs"> 
        <ul> 
        <li><a href="#tabs-1">Nunc tincidunt</a></li> 
        <li><a href="#tabs-2">Proin dolor</a></li> 
        <li><a href="#tabs-3">Aenean lacinia</a></li> 
        </ul> 
        <div id="tabs-1"> 
        <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> 
        </div> 
        <div id="tabs-2"> 
        <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p> 
        </div> 
        <div id="tabs-3"> 
        <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p> 
        <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p> 
        </div> 
    </div> 
    
    
    </body> 
    </html>