부트 스트랩 3 : 페이지 새로 고침시 선택한 탭 유지


120

Bootstrap 3 으로 새로 고침 시 선택한 탭을 활성 상태유지 하려고합니다 . 이미 여기에서 몇 가지 질문을 시도하고 확인했지만 나를 위해 일하지 않았습니다. 내가 어디에서 틀렸는 지 모르겠다. 내 코드는 다음과 같습니다.

HTML

<!-- tabs link -->
<ul class="nav nav-tabs" id="rowTab">
    <li class="active"><a href="#personal-info" data-toggle="tab">Personal Information</a></li>
    <li><a href="#Employment-info" data-toggle="tab">Employment Information</a></li>
    <li><a href="#career-path" data-toggle="tab">Career Path</a></li>
    <li><a href="#warnings" data-toggle="tab">Warning</a></li>
</ul>
<!-- end: tabs link -->

<div class="tab-content">
    <div class="tab-pane active" id="personal-info">
        tab data here...
    </div>

    <div class="tab-pane" id="Employment-info">
        tab data here...
    </div>

    <div class="tab-pane" id="career-path">
        tab data here...
    </div>

    <div class="tab-pane" id="warnings">
        tab data here...
    </div>
</div>

자바 스크립트 :

// tab
$('#rowTab a:first').tab('show');

//for bootstrap 3 use 'shown.bs.tab' instead of 'shown' in the next line
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
//save the latest tab; use cookies if you like 'em better:
localStorage.setItem('selectedTab', $(e.target).attr('id'));
});

//go to the latest tab, if it exists:
var selectedTab = localStorage.getItem('selectedTab');
if (selectedTab) {
  $('#'+selectedTab).tab('show');
}

작동하지 않는 이유는 선택한 탭을 저장하지 않기 때문입니다. 내가했을 때 console.log("selectedTab::"+selectedTab);, 나는 얻었다 : selectedTab::undefined. 그래서 당신이 적용되는 논리는 정확하지 않습니다
다크 나이트 (The Dark Knight)

어떻게해야할지 안내해 주시겠습니까?
Code Lover

나는 그것을 고치려고 노력하고있다. 내가 할 경우에, 나는 당신을 위해 여기에 대답을 게시 할 예정입니다
다크 나이트 (The Dark Knight)

나는 ... .. 그 감사 도와 주셔서 감사합니다
코드 연인에게

나는 이것이 작동 할 것이라고 생각한다 : jsbin.com/UNuYoHE/2/edit . 그것이 나에게 알려 주면 대답을 선명하게 게시하겠습니다. div 탭 텍스트를보고 싶을 수도 있습니다. 클릭 할 때 적절한 응답을 제공하지 않습니다. 예를 들어 tab4를 클릭하면 tab1 텍스트가 표시됩니다.
다크 나이트 (The Dark Knight)

답변:


187

창의 해시 값에 선택한 탭을 저장하는 것을 선호합니다. 또한 "동일한"페이지를 보는 동료에게 링크를 보낼 수도 있습니다. 트릭은 다른 탭을 선택할 때 위치의 해시를 변경하는 것입니다. 페이지에서 이미 #을 사용하고 있다면 해시 태그를 분할해야합니다. 내 앱에서 ":"를 해시 값 구분 기호로 사용합니다.

<ul class="nav nav-tabs" id="myTab">
  <li class="active"><a href="#home">Home</a></li>
  <li><a href="#profile">Profile</a></li>
  <li><a href="#messages">Messages</a></li>
  <li><a href="#settings">Settings</a></li>
</ul>

<div class="tab-content">
  <div class="tab-pane active" id="home">home</div>
  <div class="tab-pane" id="profile">profile</div>
  <div class="tab-pane" id="messages">messages</div>
  <div class="tab-pane" id="settings">settings</div>
</div>

JavaScript는 위의 <script>...</script>부분 뒤에 삽입되어야 합니다.

$('#myTab a').click(function(e) {
  e.preventDefault();
  $(this).tab('show');
});

// store the currently selected tab in the hash value
$("ul.nav-tabs > li > a").on("shown.bs.tab", function(e) {
  var id = $(e.target).attr("href").substr(1);
  window.location.hash = id;
});

// on load of the page: switch to the currently selected tab
var hash = window.location.hash;
$('#myTab a[href="' + hash + '"]').tab('show');

스크립트 섹션에서 e.preventDefault();및 끝에 세미콜론을 추가해야합니다.$(this).tab('show');
Sean Adams-Hiett 2014 년

12
불행히도 브라우저는 클릭하면 탭 콘텐츠로 이동합니다. 이것은 window.location.hash 값을 설정할 때의 기본 동작입니다. 대안은 push.state를 사용할 수 있지만 IE <= 9에 대한 polyfill이 필요합니다. 더 많은 정보를 정기적으로 다른 대안 솔루션을 살펴 걸릴 stackoverflow.com/questions/3870057/...
필립 마이클

3
요소를 클릭 할 때 해당 ID에 대한 "가짜 스크롤"을 방지 할 수있는 방법이 있습니까?
Patrice Poliquin

1
스크롤은 탭 페이지에 할당 된 ID 때문입니다. 의미 론적 ID를 사용하고 해시를 변경하면 (예 : 접두사 / 접미사 추가) 유효한 ID로 인식되지 않으며 스크롤이 발생하지 않습니다. 이것으로 답을 넓힐 것입니다.
Alex Mazzariol

1
@koppor 작동하지만 링크를 통해 저장된 다른 탭으로 바로 이동하면 링크의 탭으로 이동하기 전에 1 초 정도 빠르게 홈 탭 또는 첫 번째 탭을 표시합니다. 탭이 필요하지 않기 때문에?
mboy

135

이것은 내가 시도한 최고의 것입니다.

$(document).ready(function() {
    if (location.hash) {
        $("a[href='" + location.hash + "']").tab("show");
    }
    $(document.body).on("click", "a[data-toggle='tab']", function(event) {
        location.hash = this.getAttribute("href");
    });
});
$(window).on("popstate", function() {
    var anchor = location.hash || $("a[data-toggle='tab']").first().attr("href");
    $("a[href='" + anchor + "']").tab("show");
});

20
수락 솔루션보다이 한 작품 더 (더 나은으로는 내 말은 : 복사 &이 작품 붙여 넣기 : D를)
시릴 Duchon - 도리스

3
최고의 복사 이제까지 붙여 넣기 : P
Ghostff

1
선택기를로 변경하는 "a[data-toggle=tab]"것이 더 좋을 것이라고 생각합니다 . 선택기가 작성되는 방식은 예를 들어 모달을 여는 링크를 클릭 할 때 브라우저 URL도 변경합니다.
leifdenby

5
'a [href = "'+ location.hash + '"]'와 같이 선택기에 문자열 대괄호를 추가 할 수 있습니다. 구문 오류가 발생했습니다.
asdacap

1
이것을있는 그대로 사용하는 것은 부트 스트랩 드롭 다운과 충돌 data-toggle="dropdown"합니다 (한 경우에 탭이있는 동일한 페이지에있는 것과 동일한 페이지에 있습니다. 여기에 누군가 제안한 것처럼 대체 $(document.body).on("click", "a[data-toggle]", function(event) {하는 $(document.body).on("click", "a[data-toggle='tab']", function(event) {것이 나를 위해 트릭을했습니다.
Jiveman

44

다른 답변의 혼합 :

  • 클릭시 점프 없음
  • 위치 해시에 저장
  • localStorage에 저장 (예 : 양식 제출 용)
  • 그냥 복사 및 붙여 넣기;)

    if (location.hash) {
      $('a[href=\'' + location.hash + '\']').tab('show');
    }
    var activeTab = localStorage.getItem('activeTab');
    if (activeTab) {
      $('a[href="' + activeTab + '"]').tab('show');
    }
    
    $('body').on('click', 'a[data-toggle=\'tab\']', function (e) {
      e.preventDefault()
      var tab_name = this.getAttribute('href')
      if (history.pushState) {
        history.pushState(null, null, tab_name)
      }
      else {
        location.hash = tab_name
      }
      localStorage.setItem('activeTab', tab_name)
    
      $(this).tab('show');
      return false;
    });
    $(window).on('popstate', function () {
      var anchor = location.hash ||
        $('a[data-toggle=\'tab\']').first().attr('href');
      $('a[href=\'' + anchor + '\']').tab('show');
    });
    

1
안타깝게도 다른 솔루션을 먼저 시도했습니다.이 솔루션이 가장 효과적입니다!
tdc

2
여러 가지 시도한 최고의 솔루션입니다. 탭 콘텐츠로의 점프는 성가신
kentor

4
내용 점프는이 대답에 여전히 존재
shazyriver

2
탁월한 솔루션 : 복사, 붙여 넣기, 점심 식사. 좋은.
Gary Stanton

1
최고의 솔루션
운이 좋은

19

Xavi의 코드는 거의 완벽하게 작동했습니다. 그러나 다른 페이지로 이동할 때 양식을 제출 한 다음 내 탭이있는 페이지로 리디렉션되면 저장된 탭이 전혀로드되지 않았습니다.

구조를위한 localStorage (Nguyen의 코드가 약간 변경됨) :

$('a[data-toggle="tab"]').click(function (e) {
    e.preventDefault();
    $(this).tab('show');
});

$('a[data-toggle="tab"]').on("shown.bs.tab", function (e) {
    var id = $(e.target).attr("href");
    localStorage.setItem('selectedTab', id)
});

var selectedTab = localStorage.getItem('selectedTab');
if (selectedTab != null) {
    $('a[data-toggle="tab"][href="' + selectedTab + '"]').tab('show');
}

2
이것은 금입니다! 모달에서도 작동합니다! 좋은 대답입니다.
Lech Osiński

2
이 코드는 환상적이며 사용자가 사이트를 떠나 (세션 종료) 나중에 다시 돌아 오더라도 탭이 선택된 상태로 유지되기를 원하는 경우 훌륭하게 작동합니다. 현재 세션 동안 만 선택 사항을 유지하고 다음 세션의 기본 탭으로 돌아가려면 "localStorage"의 두 인스턴스를 "sessionStorage"로 바꿉니다.
Gary.Ray

Bootstrap 4에서 잘 작동하는 짧고 달콤한 복사 / 붙여 넣기 솔루션
CFP 지원

와우 엄청난 솔루션!
Jilani A

1
[data-toggle="pill"]알약
mxmissile

12

이것은 HTML5 localStorage를 사용 하여 활성 탭을 저장합니다.

$('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
    localStorage.setItem('activeTab', $(e.target).attr('href'));
});
var activeTab = localStorage.getItem('activeTab');
if (activeTab) {
   $('#navtab-container a[href="' + activeTab + '"]').tab('show');
}

참조 : http://www.tutorialrepublic.com/faq/how-to-keep-the-current-tab-active-on-page-reload-in-bootstrap.php https://www.w3schools.com/bootstrap /bootstrap_ref_js_tab.asp


이것은 좋지만 단점은 활성 탭과 링크를 공유 할 수 없다는 것입니다
lfender6445

이것은 좋은데, 장점은 "window.location.hash"가 url의 http 요청 매개 변수에 해시 값을 추가하여 충돌을 일으키고 페이지 매김 등과 같은 다른 http 요청에 의해 잘못된 매개 변수를 읽는 문제가 발생하지 않는다는 것입니다.
Dung

4

Xavi Martínezkoppor에서 제공 한 답변을 바탕으로 후자의 가용성에 따라 url 해시 또는 localStorage를 사용하는 솔루션을 찾았 습니다.

function rememberTabSelection(tabPaneSelector, useHash) {
    var key = 'selectedTabFor' + tabPaneSelector;
    if(get(key)) 
        $(tabPaneSelector).find('a[href=' + get(key) + ']').tab('show');

    $(tabPaneSelector).on("click", 'a[data-toggle]', function(event) {
        set(key, this.getAttribute('href'));
    }); 

    function get(key) {
        return useHash ? location.hash: localStorage.getItem(key);
    }

    function set(key, value){
        if(useHash)
            location.hash = value;
        else
            localStorage.setItem(key, value);
    }
}

용법:

$(document).ready(function () {
    rememberTabSelection('#rowTab', !localStorage);
    // Do Work...
});

Xavi Martínez 의 솔루션 의 경우처럼 뒤로 버튼을 따라 가지 않습니다 .


4

내 코드는 나를 위해 작동하며 localStorageHTML5를 사용합니다.

$('#tabHistory  a').click(function(e) {
  e.preventDefault();
  $(this).tab('show');
});
$("ul.nav-tabs#tabHistory > li > a").on("shown.bs.tab", function(e) {
  var id = $(e.target).attr("href");
  localStorage.setItem('selectedTab', id)
});
var selectedTab = localStorage.getItem('selectedTab');
$('#tabHistory a[href="' + selectedTab + '"]').tab('show');

4

나는 이것을 시도했고 작동합니다 : ( 이것을 사용중인 알약이나 탭으로 교체 하십시오 )

    jQuery(document).ready(function() {
        jQuery('a[data-toggle="pill"]').on('show.bs.tab', function(e) {
            localStorage.setItem('activeTab', jQuery(e.target).attr('href'));
        });

        // Here, save the index to which the tab corresponds. You can see it 
        // in the chrome dev tool.
        var activeTab = localStorage.getItem('activeTab');

        // In the console you will be shown the tab where you made the last 
        // click and the save to "activeTab". I leave the console for you to 
        // see. And when you refresh the browser, the last one where you 
        // clicked will be active.
        console.log(activeTab);

        if (activeTab) {
           jQuery('a[href="' + activeTab + '"]').tab('show');
        }
    });

누군가를 도울 수 있기를 바랍니다.

결과는 다음과 같습니다 : https://jsfiddle.net/neilbannet/ego1ncr5/5/


4

음, 이건 이미 2018 년인데 (TV 프로그램 제목처럼) 안하는 것보다는 늦는 게 낫다고 생각합니다. 여기 아래에는 논문 중에 만든 jQuery 코드가 있습니다.

<script type="text/javascript">
$(document).ready(function(){
    $('a[data-toggle="tab"]').on('show.affectedDiv.tab', function(e) {
        localStorage.setItem('activeTab', $(e.target).attr('href'));
    });
    var activeTab = localStorage.getItem('activeTab');
    if(activeTab){
        $('#myTab a[href="' + activeTab + '"]').tab('show');
    }
});
</script>

다음은 부트 스트랩 탭의 코드입니다.

<div class="affectedDiv">
    <ul class="nav nav-tabs" id="myTab">
        <li class="active"><a data-toggle="tab" href="#sectionA">Section A</a></li>
        <li><a data-toggle="tab" href="#sectionB">Section B</a></li>
        <li><a data-toggle="tab" href="#sectionC">Section C</a></li>
    </ul>
    <div class="tab-content">
        <div id="sectionA" class="tab-pane fade in active">
            <h3>Section A</h3>
            <p>Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui. Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth.</p>
        </div>
        <div id="sectionB" class="tab-pane fade">
            <h3>Section B</h3>
            <p>Vestibulum nec erat eu nulla rhoncus fringilla ut non neque. Vivamus nibh urna, ornare id gravida ut, mollis a magna. Aliquam porttitor condimentum nisi, eu viverra ipsum porta ut. Nam hendrerit bibendum turpis, sed molestie mi fermentum id. Aenean volutpat velit sem. Sed consequat ante in rutrum convallis. Nunc facilisis leo at faucibus adipiscing.</p>
        </div>
        <div id="sectionC" class="tab-pane fade">
            <h3>Section C</h3>
            <p>Vestibulum nec erat eu nulla rhoncus fringilla ut non neque. Vivamus nibh urna, ornare id gravida ut, mollis a magna. Aliquam porttitor condimentum nisi, eu viverra ipsum porta ut. Nam hendrerit bibendum turpis, sed molestie mi fermentum id. Aenean volutpat velit sem. Sed consequat ante in rutrum convallis. Nunc facilisis leo at faucibus adipiscing.</p>
        </div>
    </div>
</div>


부트 스트랩 및 기타 기본 사항을 호출하는 것을 잊지 마십시오. 

다음은 빠른 코드입니다.

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


이제 설명을하겠습니다.

위 예제의 jQuery 코드는 jQuery .attr () 메서드를 사용하여 새 탭이 표시 될 때 요소의 href 속성 값을 가져와 HTML5 localStorage 개체를 통해 사용자의 브라우저에 로컬로 저장합니다. 나중에 사용자가 페이지를 새로 고치면이 데이터를 검색하고 .tab ( 'show') 메서드를 통해 관련 탭을 활성화합니다.

몇 가지 예를 찾고 계십니까? 여기 당신을위한 하나입니다 .. https://jsfiddle.net/Wineson123/brseabdr/

내 대답이 여러분 모두에게 도움이 되었으면합니다 .. Cheerio! :)


2

아직 댓글을 달 수 없기 때문에 위의 답변을 복사했기 때문에 정말 도움이되었습니다. 하지만 #id 대신 쿠키를 사용하도록 변경했기 때문에 변경 사항을 공유하고 싶었습니다. 이렇게하면 하나의 새로 고침 (예 : 다중 리디렉션)보다 오래 활성 탭을 저장할 수 있거나 ID가 이미 사용되고 있고 koppors 분할 방법을 구현하지 않으려는 경우에 가능합니다.

<ul class="nav nav-tabs" id="myTab">
    <li class="active"><a href="#home">Home</a></li>
    <li><a href="#profile">Profile</a></li>
    <li><a href="#messages">Messages</a></li>
    <li><a href="#settings">Settings</a></li>
</ul>

<div class="tab-content">
    <div class="tab-pane active" id="home">home</div>
    <div class="tab-pane" id="profile">profile</div>
    <div class="tab-pane" id="messages">messages</div>
    <div class="tab-pane" id="settings">settings</div>
</div>

<script>
$('#myTab a').click(function (e) {
    e.preventDefault();
    $(this).tab('show');
});

// store the currently selected tab in the hash value
$("ul.nav-tabs > li > a").on("shown.bs.tab", function (e) {
    var id = $(e.target).attr("href").substr(1);
    $.cookie('activeTab', id);
});

    // on load of the page: switch to the currently selected tab
    var hash = $.cookie('activeTab');
    if (hash != null) {
        $('#myTab a[href="#' + hash + '"]').tab('show');
    }
</script>

업데이트 해주셔서 감사합니다. 실제로 나는 그러한 해결책을 찾고 있었지만 내가 원하는 시간보다 @koppor 대답 만 작업했습니다. 사실 그것은 우리가 백 기능을 사용하고 싶다면 좋은 방법 중 하나입니다. 업데이트 주셔서 감사합니다
코드 연인

2

Xavi Martínez에서 제공하는 코드를 사용해 보았습니다 . IE7에서는 작동하지 않았습니다. 문제는 탭이 관련 콘텐츠를 참조하지 않는다는 것입니다.
그래서 저는 그 문제를 해결하기 위해이 코드를 선호합니다.

function pageLoad() {
  $(document).ready(function() {

    var tabCookieName = "ui-tabs-1"; //cookie name
    var location = $.cookie(tabCookieName); //take tab's href

    if (location) {
      $('#Tabs a[href="' + location + '"]').tab('show'); //activate tab
    }

    $('#Tabs a').click(function(e) {
      e.preventDefault()
      $(this).tab('show')
    })

    //when content is alredy shown - event activate 
    $('#Tabs a').on('shown.bs.tab', function(e) {
      location = e.target.hash; // take current href
      $.cookie(tabCookieName, location, {
        path: '/'
      }); //write href in cookie
    })
  });
};

이것은 좋지만 단점은 활성 탭과 링크를 공유 할 수 없다는 것입니다
lfender6445

1

공유해 주셔서 감사합니다.

모든 솔루션을 읽음으로써. 아래 코드로 후자의 가용성에 따라 url 해시 또는 localStorage를 사용하는 솔루션을 생각해 냈습니다.

$(function(){
    $(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
        localStorage.setItem('activeTab', $(e.target).attr('href'));
    })

    var hash = window.location.hash;
    var activeTab = localStorage.getItem('activeTab');

    if(hash){
          $('#project-tabs  a[href="' + hash + '"]').tab('show');   
    }else if (activeTab){
        $('#project-tabs a[href="' + activeTab + '"]').tab('show');
    }
});

1

Bootstrap v4.3.1의 경우. 아래에서 시도하십시오.

$(document).ready(function() {
    var pathname = window.location.pathname; //get the path of current page
    $('.navbar-nav > li > a[href="'+pathname+'"]').parent().addClass('active');
})

0

html5를 사용하여 이것을 요리했습니다.

페이지의 일부 :

<h2 id="heading" data-activetab="@ViewBag.activetab">Some random text</h2>

뷰백에는 페이지 / 요소에 대한 ID 만 포함되어야합니다 (예 : "testing").

site.js를 만들고 페이지에 스크립트를 추가했습니다.

/// <reference path="../jquery-2.1.0.js" />
$(document).ready(
  function() {
    var setactive = $("#heading").data("activetab");
    var a = $('#' + setactive).addClass("active");
  }
)

이제 navbar에 ID를 추가하기 만하면됩니다. 예 :

<ul class="nav navbar-nav">
  <li **id="testing" **>
    @Html.ActionLink("Lalala", "MyAction", "MyController")
  </li>
</ul>

모두 데이터 속성을 환영합니다 :)


0

클릭시 점프를 피하는 Xavi Martínez의 답변 외에도

점프 피하기

$(document).ready(function(){

    // show active tab

    if(location.hash) {

        $('a[href=' + location.hash + ']').tab('show');
    }

    // set hash on click without jumb

    $(document.body).on("click", "a[data-toggle]", function(e) {

        e.preventDefault();

        if(history.pushState) {

            history.pushState(null, null, this.getAttribute("href"));
        }
        else {

            location.hash = this.getAttribute("href");
        }

        $('a[href=' + location.hash + ']').tab('show');

        return false;
    });
});

// set hash on popstate

$(window).on('popstate', function() {

    var anchor = location.hash || $("a[data-toggle=tab]").first().attr("href");

    $('a[href=' + anchor + ']').tab('show');
});

중첩 된 탭

"_"문자를 구분 기호로 사용하여 구현

$(document).ready(function(){

    // show active tab

    if(location.hash) {

        var tabs = location.hash.substring(1).split('_');

        $.each(tabs,function(n){

            $('a[href=#' + tabs[n] + ']').tab('show');
        });         

        $('a[href=' + location.hash + ']').tab('show');
    }

    // set hash on click without jumb

    $(document.body).on("click", "a[data-toggle]", function(e) {

        e.preventDefault();

        if(history.pushState) {

            history.pushState(null, null, this.getAttribute("href"));
        }
        else {

            location.hash = this.getAttribute("href");
        }

        var tabs = location.hash.substring(1).split('_');

        //console.log(tabs);

        $.each(tabs,function(n){

            $('a[href=#' + tabs[n] + ']').tab('show');
        });

        $('a[href=' + location.hash + ']').tab('show');

        return false;
    });
});

// set hash on popstate

$(window).on('popstate', function() {

    var anchor = location.hash || $("a[data-toggle=tab]").first().attr("href");

    var tabs = anchor.substring(1).split('_');

    $.each(tabs,function(n){

        $('a[href=#' + tabs[n] + ']').tab('show');
    });

    $('a[href=' + anchor + ']').tab('show');
});

0

우리는 jquery 트리거를 사용하여 스크립트가 버튼을 누르도록했습니다.

$ ( ". class_name"). trigger ( 'click');


0

이 작업을 수행하는 방법에는 여러 가지가 있습니다. 나는 이것을 짧고 간단하게 생각 해냈다. 이것이 다른 사람들을 돕기를 바랍니다.

  var url = document.location.toString();
  if (url.match('#')) {
    $('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
  } 

  $('.nav-tabs a').on('shown.bs.tab', function (e) {
    window.location.hash = e.target.hash;
    if(e.target.hash == "#activity"){
      $('.nano').nanoScroller();
    }
  })

0

페이지를 다시로드하고 예상 탭을 선택한 상태로 유지 한 후 해결 방법이 있습니다.

데이터를 저장 한 후 리디렉션 된 URL이 my_url # tab_2라고 가정합니다.

이제 다음 스크립트를 통해 예상 탭이 선택된 상태로 유지됩니다.

$(document).ready(function(){
    var url = document.location.toString();
    if (url.match('#')) {
        $('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
        $('.nav-tabs a').removeClass('active');
    }
});

앵커 태그에 자동으로 할당 된 활성 클래스가 있으므로 $ ( '. nav-tabs a'). removeClass ( 'active'); 이 스크립트.
Hasib Kamal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.