Bootstrap 3: Pertahankan tab yang dipilih pada penyegaran halaman

120

Saya mencoba untuk tetap mengaktifkan tab yang dipilih saat refresh dengan Bootstrap 3 . Mencoba dan memeriksa dengan beberapa pertanyaan sudah ditanyakan di sini tetapi tidak ada yang berhasil untuk saya. Tidak tahu di mana saya salah. Ini kode saya

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>

Javascript :

// 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');
}
Code Lover
sumber
Alasan itu tidak berfungsi karena, itu tidak menyimpan tab yang dipilih. Ketika saya lakukan console.log("selectedTab::"+selectedTab);, saya punya: selectedTab::undefined. Jadi logika yang Anda terapkan tidak benar
The Dark Knight
Jadi bisakah Anda membimbing saya apa yang harus dilakukan?
Code Lover
Saya mencoba untuk memperbaikinya. Jika iya, saya akan memposting jawabannya di sini untuk Anda
The Dark Knight
Saya menghargai itu .. terima kasih telah membantu ..
Code Lover
Saya pikir ini akan berhasil: jsbin.com/UNuYoHE/2/edit . Jika tidak memberi tahu saya, maka saya akan memposting jawabannya dengan cara yang tajam. Anda mungkin juga ingin melihat teks tab div. mereka tidak memberikan respon yang tepat saat Anda mengkliknya. Misalnya, jika Anda mengklik tab4, Anda mendapatkan teks tab1.
The Dark Knight

Jawaban:

187

Saya lebih suka menyimpan tab yang dipilih di nilai hash jendela. Ini juga memungkinkan pengiriman link ke rekan kerja, yang kemudian melihat halaman "yang sama". Triknya adalah mengubah hash lokasi saat tab lain dipilih. Jika Anda sudah menggunakan # di halaman Anda, mungkin tag hash harus dipisah. Di aplikasi saya, saya menggunakan ":" sebagai pemisah nilai hash.

<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, harus disematkan setelah di atas <script>...</script>sebagian.

$('#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');
koppor
sumber
Di bagian skrip, Anda harus menambahkan titik koma di akhir e.preventDefault();dan$(this).tab('show');
Sean Adams-Hiett
12
Sayangnya browser beralih ke konten tab saat Anda mengkliknya. Ini adalah perilaku default saat Anda menyetel nilai window.location.hash. Alternatifnya mungkin menggunakan push.state tetapi Anda memerlukan polyfill untuk IE <= 9. Untuk info lebih lanjut dan solusi alternatif lainnya lihat di stackoverflow.com/questions/3870057/…
Philipp Michael
3
Adakah cara untuk mencegah "scroll palsu" ke id yang dipermasalahkan saat kita mengklik elemen?
Patrice Poliquin
1
Gulungan itu karena id yang ditetapkan ke halaman tab. Jika Anda menggunakan ID semantik dan mengacaukan hash (yaitu menambahkan prefiks / sufiks) itu tidak akan dikenali sebagai id yang valid dan tidak ada gulir yang akan terjadi. Akan memperluas jawabannya dengan ini.
Alex Mazzariol
1
@koppor berfungsi tetapi ketika saya melompat langsung ke tab lain yang disimpan (melalui tautan) ini akan menampilkan tab beranda atau tab pertama dengan cepat sekitar 1 detik sebelum melompat ke tab di tautan .. Ada ide untuk mencegahnya menampilkan yang pertama tab karena tidak diperlukan?
mboy
135

Ini yang terbaik yang saya coba:

$(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");
});
Xavi Martínez
sumber
20
Yang ini bekerja lebih baik daripada solusi yang diterima (Maksud saya lebih baik: salin & tempel berfungsi: D)
Cyril Duchon-Doris
3
salin dan tempel terbaik yang pernah ada: P
Ghostff
1
Saya pikir mengubah selektor "a[data-toggle=tab]"menjadi lebih baik. Cara selektor ditulis sekarang juga mengubah URL browser saat mengklik link untuk misalnya membuka modal.
leifdenby
5
Anda mungkin ingin menambahkan tanda kurung siku pada pemilih, seperti 'a [href = "' + location.hash + '"]'. Tersandung kesalahan sintaks.
asdacap
1
Menggunakan ini sebagaimana adanya konflik dengan dropdown Bootstrap (yang digunakan data-toggle="dropdown"dan yang kebetulan saya miliki di halaman yang sama dengan tab dalam satu kasus. Seperti seseorang yang disarankan di sini, hanya mengganti $(document.body).on("click", "a[data-toggle]", function(event) {dengan $(document.body).on("click", "a[data-toggle='tab']", function(event) {melakukan trik untuk saya.
Jiveman
44

Campuran antara jawaban lain:

  • Tidak ada lompatan di klik
  • Hemat hash lokasi
  • Simpan di localStorage (misalnya: untuk pengiriman formulir)
  • Cukup salin & tempel;)

    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');
    });
    
lambang
sumber
1
Malu saya mencoba solusi lain dulu - yang ini paling berhasil!
tdc
2
Solusi terbaik yang pernah saya coba dari banyak perbedaan. Melompat ke konten tab itu menjengkelkan
kentor
4
Lompatan konten masih ada dengan jawaban ini
shazyriver
2
Solusi luar biasa: Salin, tempel, pergi makan siang. Bagus.
Gary Stanton
1
Solusi terbaik yang pernah ada
beruntung
19

Kode Xavi bekerja sepenuhnya. Namun saat menavigasi ke halaman lain, mengirimkan formulir, kemudian dialihkan ke halaman dengan tab saya sama sekali tidak memuat tab yang disimpan.

localStorage untuk menyelamatkan (sedikit mengubah kode 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');
}
apfz
sumber
2
Ini emas! Ia bekerja bahkan dengan modal! Jawaban yang bagus.
Lech Osiński
2
Kode ini luar biasa, dan berfungsi dengan baik jika Anda ingin tab tetap dipilih meskipun pengguna meninggalkan situs (mengakhiri sesi) dan kembali lagi nanti. Agar pilihan tetap ada selama sesi saat ini dan kembali ke tab default pada sesi berikutnya, ganti dua contoh "localStorage" dengan "sessionStorage".
Gary. Ray
Solusi singkat, manis, salin / tempel yang berfungsi baik dengan Bootstrap 4.
Dukungan CFP
Wow solusi yang luar biasa!
Jilani A
1
[data-toggle="pill"]untuk pil
mxmissile
12

Yang ini menggunakan HTML5 localStorageuntuk menyimpan tab aktif

$('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');
}

ref: 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

Ajith R Nair
sumber
ini bagus, tetapi kerugiannya adalah Anda tidak dapat berbagi tautan dengan tab aktif
lfender6445
ini bagus, keuntungannya adalah tidak menimbulkan masalah di mana "window.location.hash" menambahkan nilai hash ke parameter permintaan http di url menyebabkan tabrakan dan parameter buruk dibaca oleh permintaan http lain seperti pagination, dan lain
Dung
4

Mendasarkan diri pada jawaban yang diberikan oleh Xavi Martínez dan koppor, saya menemukan solusi yang menggunakan hash url atau localStorage tergantung pada ketersediaan yang terakhir:

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);
    }
}

Pemakaian:

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

Itu tidak mengikuti tombol kembali seperti halnya solusi Xavi Martínez .

Ziad
sumber
4

Kode saya, ini berfungsi untuk saya, saya menggunakan 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');
Nguyen Pham
sumber
4

Saya mencoba ini dan berhasil: (Harap ganti ini dengan pil atau tab yang Anda gunakan)

    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');
        }
    });

Saya berharap ini akan membantu seseorang.

Ini hasilnya: https://jsfiddle.net/neilbannet/ego1ncr5/5/

Neil Bannet
sumber
4

Yah, ini udah di tahun 2018 tapi menurut saya lebih baik telat daripada tidak sama sekali (seperti judul di program TV), hihihi. Di bawah ini adalah kode jQuery yang saya buat selama tesis saya.

<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>

dan berikut adalah kode untuk tab bootstrap:

<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>


Jangan lupa untuk memanggil bootstrap dan hal mendasar lainnya 

berikut adalah kode cepat untuk Anda:

<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>


Sekarang mari kita ke penjelasannya:

Kode jQuery dalam contoh di atas hanya mendapatkan nilai atribut href elemen ketika tab baru telah ditampilkan menggunakan metode jQuery .attr () dan menyimpannya secara lokal di browser pengguna melalui objek localStorage HTML5. Kemudian, saat pengguna menyegarkan halaman, ia mengambil data ini dan mengaktifkan tab terkait melalui metode .tab ('show').

Mencari beberapa contoh? ini satu untuk kalian .. https://jsfiddle.net/Wineson123/brseabdr/

Saya berharap jawaban saya dapat membantu Anda semua .. Cheerio! :)

Tuan Winson
sumber
2

Karena saya belum bisa berkomentar, saya menyalin jawaban dari atas, itu sangat membantu saya. Tapi saya mengubahnya agar berfungsi dengan cookie, bukan #id, jadi saya ingin membagikan perubahannya. Hal ini memungkinkan untuk menyimpan tab aktif lebih lama dari hanya satu penyegaran (misalnya beberapa pengalihan) atau ketika id sudah digunakan dan Anda tidak ingin menerapkan metode pemisahan 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>
Joeri Landman
sumber
Terima kasih atas pembaruannya. Pada kenyataannya saya mencari resolusi seperti itu tetapi daripada waktu yang saya inginkan, saya hanya mendapat jawaban @koppor sebagai jawaban yang berfungsi. Faktanya itu adalah salah satu cara terbaik jika kita ingin menggunakan fitur kembali. Terima kasih atas pembaruannya
Code Lover
2

Saya mencoba kode yang ditawarkan oleh Xavi Martínez . Ini berhasil tetapi tidak untuk IE7. Masalahnya adalah - tab tidak mengacu pada konten yang relevan.
Jadi, saya lebih suka kode ini untuk memecahkan masalah itu.

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
    })
  });
};
Vitalii Isaenko
sumber
ini bagus, tetapi kerugiannya adalah Anda tidak dapat berbagi tautan dengan tab aktif
lfender6445
1

Terima kasih telah berbagi.

Dengan membaca semua solusi. Saya datang dengan solusi yang menggunakan hash url atau localStorage tergantung pada ketersediaan yang terakhir dengan kode di bawah ini:

$(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');
    }
});
Vaibhav
sumber
1

Untuk Bootstrap v4.3.1. Coba di bawah ini:

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

Menggunakan html5 saya membuat yang ini:

Beberapa tempat di halaman:

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

Viewbag hanya boleh berisi id untuk halaman / elemen, misalnya: "pengujian"

Saya membuat site.js dan menambahkan skrip di halaman:

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

Sekarang yang harus Anda lakukan adalah menambahkan id Anda ke bilah navigasi Anda. Misalnya.:

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

Semua memuji atribut data :)

Theodor Alexander Hkansson Hei
sumber
0

Selain jawaban Xavi Martínez yang menghindari lompatan klik

Menghindari Jump

$(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');
});

Tab bersarang

implementasi dengan karakter "_" sebagai pemisah

$(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');
});
RafaSashi
sumber
0

Kami menggunakan jquery trigger untuk memuat skrip yang menekan tombol untuk kami

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

Dan Kaiser
sumber
0

Celakalah, ada banyak cara untuk melakukan ini. Saya datang dengan ini, singkat dan sederhana. Semoga ini bisa membantu orang lain.

  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();
    }
  })
pengguna752746
sumber
0

Ada solusi setelah memuat ulang halaman dan mempertahankan tab yang diharapkan seperti yang dipilih.

Misalkan setelah menyimpan data url yang diarahkan ulang adalah: my_url # tab_2

Sekarang melalui skrip berikut, tab yang Anda harapkan akan tetap dipilih.

$(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');
    }
});
Hasib Kamal
sumber
Di sana kelas aktif secara otomatis ditetapkan ke dalam tag jangkar, oleh karena itu dihapus oleh $ ('. Nav-tabs a'). RemoveClass ('active'); skrip ini.
Hasib Kamal