Bootstrap 3: Giữ tab đã chọn khi làm mới trang


120

Tôi đang cố gắng giữ cho tab đã chọn hoạt động khi làm mới với Bootstrap 3 . Đã thử và kiểm tra với một số câu hỏi đã được hỏi ở đây nhưng không có tác dụng với tôi. Không biết mình sai ở đâu. Đây là mã của tôi

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

Lý do nó không hoạt động là vì nó không lưu trữ tab đã chọn. Khi tôi đã làm console.log("selectedTab::"+selectedTab);, tôi nhận: selectedTab::undefined. Vì vậy, các logic bạn áp dụng không đúng
The Dark Knight

Vậy bạn có thể vui lòng hướng dẫn tôi phải làm gì?
Code Lover

Tôi đang cố gắng sửa chữa nó. Nếu tôi làm, tôi sẽ gửi câu trả lời ở đây cho bạn
The Dark Knight

Tôi đánh giá cao điều đó .. cảm ơn bạn đã giúp đỡ ..
Mã Lover

Tôi nghĩ điều này sẽ hoạt động: jsbin.com/UNuYoHE/2/edit . Nếu nó cho tôi biết, thì tôi sẽ đăng câu trả lời một cách rõ ràng. Bạn cũng có thể muốn xem các văn bản tab div. chúng không đưa ra phản hồi thích hợp khi bạn nhấp vào chúng. Ví dụ: nếu bạn nhấp vào tab4, bạn sẽ nhận được văn bản tab1.
The Dark Knight

Câu trả lời:


187

Tôi thích lưu trữ tab đã chọn trong giá trị băm của cửa sổ. Điều này cũng cho phép gửi liên kết đến đồng nghiệp, những người nhìn thấy trang "giống nhau". Mẹo là thay đổi băm của vị trí khi một tab khác được chọn. Nếu bạn đã sử dụng # trong trang của mình, có thể thẻ băm phải được tách. Trong ứng dụng của mình, tôi sử dụng ":" làm dấu phân tách giá trị băm.

<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, phải được nhúng sau phần trên trong một <script>...</script>phần.

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

Trong phần kịch bản, bạn nên thêm một dấu chấm phẩy đến cuối e.preventDefault();$(this).tab('show');
Sean Adams-Hiett

12
Thật không may, trình duyệt đang chuyển đến nội dung tab khi bạn nhấp vào nó. Đây là hành vi mặc định khi bạn đặt giá trị window.location.hash. Một giải pháp thay thế có thể là sử dụng push.state nhưng bạn cần một polyfill cho IE <= 9. Để biết thêm thông tin và các giải pháp thay thế khác, hãy xem stackoverflow.com/questions/3870057/…
Philipp Michael

3
Có cách nào để ngăn chặn "cuộn giả" đến id được đề cập khi chúng ta nhấp vào phần tử không?
Patrice Poliquin

1
Cuộn là do id được gán cho các trang tab. Nếu bạn sử dụng ID ngữ nghĩa và quản lý băm (tức là thêm tiền tố / hậu tố), nó sẽ không được công nhận là một id hợp lệ và không có cuộn nào xảy ra. Sẽ mở rộng câu trả lời với điều này.
Alex Mazzariol

1
@koppor nó hoạt động nhưng khi tôi nhảy trực tiếp trên tab đã lưu khác (thông qua liên kết), nó sẽ hiển thị tab trang chủ hoặc tab đầu tiên một cách nhanh chóng khoảng 1 giây trước khi chuyển đến tab trong liên kết .. Có ý kiến ​​gì để ngăn nó hiển thị tab đầu tiên không tab vì nó không cần thiết?
mboy

135

Đây là cái tốt nhất mà tôi đã thử:

$(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
Đây là một tác phẩm tốt hơn so với các giải pháp được chấp nhận (Bằng tốt hơn tôi có nghĩa là: sao chép và dán các công trình: D)
Cyril Duchon-Doris

3
tốt nhất sao chép và dán bao giờ: P
Ghostff

1
Tôi nghĩ rằng thay đổi bộ chọn "a[data-toggle=tab]"sẽ tốt hơn. Cách bộ chọn được viết bây giờ nó cũng thay đổi URL của trình duyệt khi nhấp vào một liên kết để mở một phương thức chẳng hạn.
leifdenby

5
Bạn có thể muốn thêm dấu ngoặc chuỗi trên bộ chọn, như 'a [href = "' + location.hash + '"]'. Tình cờ gặp lỗi cú pháp.
asdacap

1
Sử dụng điều này như-là mâu thuẫn với Bootstrap Dropdowns (mà sử dụng data-toggle="dropdown". Và mà tôi tình cờ có trên cùng một trang với các tab trong một trường hợp giống như ai đó đề nghị ở đây, chỉ cần thay thế $(document.body).on("click", "a[data-toggle]", function(event) {với $(document.body).on("click", "a[data-toggle='tab']", function(event) {đã làm các trick cho tôi.
Jiveman

44

Sự kết hợp giữa những câu trả lời khác:

  • Không nhảy khi nhấp chuột
  • Lưu trên băm vị trí
  • Lưu trên localStorage (ví dụ: để gửi biểu mẫu)
  • Chỉ cần sao chép & dán;)

    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
Thật xấu hổ, tôi đã thử các giải pháp khác trước - giải pháp này hoạt động tốt nhất!
tdc

2
Giải pháp tốt nhất mà tôi đã thử từ nhiều giải pháp khác nhau. Các nhảy đến nội dung tab đã gây phiền nhiễu
kentor

4
Nội dung nhảy vẫn còn đó với câu trả lời này
shazyriver

2
Giải pháp tuyệt vời: Sao chép, dán, đi ăn trưa. Đẹp.
Gary Stanton

1
Giải pháp tốt nhất từ ​​trước đến nay
may mắn

19

Mã của Xavi hoạt động hoàn toàn bình thường. Nhưng khi điều hướng đến một trang khác, gửi biểu mẫu, sau đó được chuyển hướng đến trang có các tab của tôi hoàn toàn không tải tab đã lưu.

localStorage để giải cứu (mã của Nguyên đã thay đổi một chút):

$('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
Đây là vàng! Nó hoạt động ngay cả với các phương thức! Câu trả lời chính xác.
Lech Osiński

2
Mã này thật tuyệt vời và hoạt động tốt nếu bạn muốn tab vẫn được chọn ngay cả khi người dùng rời khỏi trang web (kết thúc phiên) và quay lại sau. Để lựa chọn chỉ tồn tại trong suốt phiên hiện tại và trở lại tab mặc định trong phiên tiếp theo, hãy thay thế hai phiên bản "localStorage" bằng "sessionStorage".
Gary.Ray

Tóm lại, ngọt ngào, sao chép / dán giải pháp mà hoạt động tốt với Bootstrap 4.
CFP Hỗ trợ

Wow giải pháp tuyệt vời!
Jilani A

1
[data-toggle="pill"]cho thuốc
mxmissile

12

Cái này sử dụng HTML5 localStorageđể lưu trữ tab đang hoạt động

$('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


đây là tốt đẹp, nhưng một bất lợi là bạn sẽ không thể chia sẻ liên kết với tab hoạt động
lfender6445

điều này rất hay, ưu điểm là nó không gây ra vấn đề khi "window.location.hash" thêm giá trị băm vào tham số yêu cầu http trong url gây ra xung đột và tham số xấu bị đọc bởi yêu cầu http khác như phân trang, v.v.
Dung

4

Dựa trên các câu trả lời do Xavi Martínezkoppor cung cấp , tôi đã đưa ra một giải pháp sử dụng băm url hoặc localStorage tùy thuộc vào tính khả dụng của giải pháp sau:

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

Sử dụng:

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

Nó không theo kịp với nút quay lại như trường hợp của giải pháp Xavi Martínez .


4

Mã của tôi, nó phù hợp với tôi, tôi sử dụng 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

Tôi đã thử điều này và nó hoạt động: (Vui lòng thay thế điều này bằng viên thuốc hoặc tab bạn đang sử dụng)

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

Tôi hy vọng nó sẽ giúp ai đó.

Đây là kết quả: https://jsfiddle.net/neilbannet/ego1ncr5/5/


4

Chà, năm 2018 đã sang rồi nhưng tôi nghĩ muộn còn hơn không (như tiêu đề trong một chương trình truyền hình), lol. Dưới đây là đoạn mã jQuery mà tôi tạo trong quá trình làm luận văn của mình.

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

và đây là mã cho các 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>


Đừng quên gọi bootstrap và những thứ cơ bản khác 

đây là mã nhanh cho bạn:

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


Bây giờ chúng ta hãy đi đến lời giải thích:

Mã jQuery trong ví dụ trên chỉ đơn giản là lấy giá trị thuộc tính href của phần tử khi một tab mới được hiển thị bằng cách sử dụng phương thức jQuery .attr () và lưu nó cục bộ trong trình duyệt của người dùng thông qua đối tượng HTML5 localStorage. Sau đó, khi người dùng làm mới trang, nó sẽ truy xuất dữ liệu này và kích hoạt tab liên quan thông qua phương thức .tab ('show').

Tìm kiếm một số ví dụ? đây là một cho các bạn .. https://jsfiddle.net/Wineson123/brseabdr/

Tôi ước câu trả lời của tôi có thể giúp tất cả các bạn .. Cheerio! :)


2

Vì tôi không thể bình luận nên tôi đã sao chép câu trả lời từ trên, nó thực sự giúp ích cho tôi. Nhưng tôi đã thay đổi nó để hoạt động với cookie thay vì #id nên tôi muốn chia sẻ các thay đổi. Điều này giúp bạn có thể lưu trữ tab đang hoạt động lâu hơn chỉ một lần làm mới (ví dụ: nhiều chuyển hướng) hoặc khi id đã được sử dụng và bạn không muốn triển khai phương pháp phân tách 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>

Cảm ơn các cập nhật. Trong thực tế, tôi đang tìm kiếm độ phân giải như vậy nhưng hơn thời gian tôi muốn, tôi chỉ nhận được câu trả lời @koppor là đang làm việc. Trên thực tế, đó là một trong những cách tuyệt vời nếu chúng ta muốn sử dụng tính năng quay lại. Cảm ơn đã cập nhật
Mã Lover

2

Tôi đã thử mã do Xavi Martínez cung cấp . Nó hoạt động nhưng không hoạt động cho IE7. Vấn đề là - các tab không tham chiếu đến bất kỳ nội dung có liên quan nào.
Vì vậy, tôi thích mã này hơn để giải quyết vấn đề đó.

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

đây là tốt đẹp, nhưng một bất lợi là bạn sẽ không thể chia sẻ liên kết với tab hoạt động
lfender6445

1

Cám ơn vì đã chia sẻ.

Bằng cách đọc tất cả các giải pháp. Tôi đã đưa ra một giải pháp sử dụng băm url hoặc localStorage tùy thuộc vào tính khả dụng của cái sau với mã bên dưới:

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

Đối với Bootstrap v4.3.1. Hãy thử bên dưới:

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

0

Sử dụng html5, tôi đã tạo ra cái này:

Một số nơi trên trang:

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

Viewbag chỉ nên chứa id cho trang / phần tử, ví dụ: "testing"

Tôi đã tạo một site.js và thêm tập lệnh trên trang:

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

Bây giờ tất cả những gì bạn phải làm là thêm id của bạn vào thanh điều hướng. Ví dụ.:

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

Tất cả đều chào đón thuộc tính dữ liệu :)


0

Ngoài câu trả lời của Xavi Martínez tránh nhảy khi nhấp chuột

Nhảy tránh

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

Các tab lồng nhau

triển khai với ký tự "_" làm dấu phân tách

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

Chúng tôi đã sử dụng trình kích hoạt jquery để tải lên có một tập lệnh nhấn nút cho chúng tôi

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


0

Khốn nỗi, có quá nhiều cách để làm điều này. Tôi đã nghĩ ra điều này, ngắn gọn và đơn giản. Hy vọng điều này sẽ giúp những người khác.

  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

Có một giải pháp sau khi tải lại trang và giữ tab mong đợi như đã chọn.

Giả sử sau khi lưu dữ liệu, url được chuyển hướng là: my_url # tab_2

Bây giờ thông qua tập lệnh sau, tab mong đợi của bạn sẽ vẫn được chọn.

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

Có lớp đang hoạt động tự động được gán vào thẻ liên kết, vì vậy, nó bị xóa bởi $ ('. Nav-tabs a'). RemoveClass ('active'); kịch bản này.
Hasib Kamal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.