【问题标题】:How can I open a bootstrap 3 tab from external link?如何从外部链接打开 bootstrap 3 选项卡?
【发布时间】:2019-08-26 12:21:46
【问题描述】:

我想在我网站的另一个页面中创建一个指向特定标签的链接。

我试图创建这样的链接:www.example.com/test.html#tab2,但它总是针对第一个选项卡(我猜是带有显示类的选项卡)。

index.html

<a href="test.html#menu-catalog">link for catalog</a>

text.html

<ul class="nav nav-tabs">
  <li id="homeTab" class="active"><a data-toggle="tab" href="#home" aria-expanded="true">menu 1</a></li>
  <li id="menu1Tab"><a data-toggle="tab" href="#menu1">menu 2</a></li>
  <li id="menu2Tab"><a data-toggle="tab" href="#menu-catalog">menu 3</a></li>
  <li id="menu3Tab"><a data-toggle="tab" href="#menu3">menu 4</a></li>
</ul>

<div class="tab-content">
  <div id="home" class="tab-pane fade in active">  
    ...
  </div>
  <div id="menu1" class="tab-pane fade">
   ....
  </div>
  <div id="menu-catalog" class="tab-pane fade">
    ...
  </div>
  <div id="menu3" class="tab-pane fade">
    ...
  </div>
</div>

当我单击 index.html 中的链接以定位并打开具有正确 ID 的选项卡时。​​p>

【问题讨论】:

标签: javascript jquery twitter-bootstrap-3 bootstrap-tabs


【解决方案1】:

如果您使用的是 bootstrap + jquery 设置,您可以通过以下方式轻松获得此行为:

$(() => {
  const {
    hash
  } = document.location;
  if (!hash) return false;
  $(`.nav.nav-tabs [href="${hash}"]`).tab('show');
});

【讨论】:

    【解决方案2】:

    试试这个

    $(function(){
      var hash = window.location.hash;
      hash && $('ul.nav a[href="' + hash + '"]').tab('show');
    
      $('.nav-tabs a').click(function (e) {
        $(this).tab('show');
        var scrollmem = $('body').scrollTop();
        window.location.hash = this.hash;
        $('html,body').scrollTop(scrollmem);
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2018-07-19
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多