【问题标题】:External hash (#) link to go & open specific tabs not working with Bootstrap 5 (Ok on 4)?外部哈希 (#) 链接去和打开不适用于 Bootstrap 5 的特定选项卡(在 4 上确定)?
【发布时间】:2022-08-04 22:41:45
【问题描述】:

我的目标是使用外部哈希 (#) url 链接来打开并打开具体的 Bootstrap 选项卡。我喜欢与 html 锚链接相同的功能,它允许任何页面中的链接、通过电子邮件发送任何内容以转到正确的网页、滚动查看 &,在这种情况下,打开相关选项卡。

这是 CodePen 上一个有效的 Bootstrap 4 示例—> https://codepen.io/Chacapamac/pen/RwQZvBX

HTML

<div class=\"big-spacer\"> <a href=\"#forgot-password\" class=\"tab-link\">Go to Forget Password</a> 
<br /><br />
Other test link here
</div>
<div class=\"big-spacer\"> <a href=\"#forgot-password\" class=\"tab-link\">Go to Forget Password</a> </div>
—————————————————————————————————————————————
<ul class=\"nav nav-tabs\" id=\"myTab\" role=\"tablist\">
    <li class=\"nav-item\">
        <a class=\"nav-link active\" id=\"log-in-tab\" data-bs-toggle=\"tab\" href=\"#log-in\" role=\"tab\" aria-controls=\"log-in\" aria-selected=\"true\">Log in</a>
    </li>
    <li class=\"nav-item\">
        <a class=\"nav-link\" id=\"forgot-password-tab\" data-bs-toggle=\"tab\" href=\"#forgot-password\" role=\"tab\" aria-controls=\"forgot-password\" aria-selected=\"false\">Forgot password</a>
    </li>
    <li class=\"nav-item\">
        <a class=\"nav-link\" id=\"sign-up-tab\" data-bs-toggle=\"tab\" href=\"#sign-up\" role=\"tab\" aria-controls=\"sign-up\" aria-selected=\"false\">Sign up</a>
    </li>
</ul>

<div class=\"tab-content\" id=\"myTabContent\">
    <div class=\"tab-pane fade show active\" id=\"log-in\" role=\"tabpanel\" aria-labelledby=\"log-in-tab\">
        Login tab<br />
    </div>
    
    <div class=\"tab-pane fade\" id=\"forgot-password\" role=\"tabpanel\" aria-labelledby=\"forgot-password-tab\">
        Forgt password tab
    </div>

    <div class=\"tab-pane fade\" id=\"sign-up\" role=\"tabpanel\" aria-labelledby=\"sign-up-tab\">
        Sign-up tab
    </div>
</div>
<br /><br /><br /><br />
I also try to replace href in the nav by data-bs-target

CSS

html { 
  padding: 20px !Important;
  margin: 20px !Important;
}

div.big-spacer { height: 800px;

}

脚本

$(\'.tab-link\').on(\'click\', function(event) {
    event.preventDefault();
    var target = $(\'[data-toggle=\"tab\"][href=\"\' + this.hash + \'\"]\');
    
    target.trigger(\'click\');
    target[0].scrollIntoView(true);
});

::::::::::::::::::::::::::::::::::::::::::::: :::::::::::问题引导 5:::::::::::

我的 Bootstrap 5 示例正在滚动查看,但不打开标签. 标签工作正常。 —> https://codepen.io/Chacapamac/pen/wvyPLdG

我的代码:仅对 Bootstrap 4 代码的更改** - 我将“data-toggle”替换为“data-bs-toggle”(在 html、js 中)

HTML

<div class=\"big-spacer\"> <a href=\"#forgot-password\" class=\"tab-link\">Go to Forget Password</a> 
<br /><br />
Other test link here
</div>
<div class=\"big-spacer\"> <a href=\"#forgot-password\" class=\"tab-link\">Go to Forget Password</a> </div>
—————————————————————————————————————————————
<ul class=\"nav nav-tabs\" id=\"myTab\" role=\"tablist\">
    <li class=\"nav-item\">
        <a class=\"nav-link active\" id=\"log-in-tab\" data-bs-toggle=\"tab\" href=\"#log-in\" role=\"tab\" aria-controls=\"log-in\" aria-selected=\"true\">Log in</a>
    </li>
    <li class=\"nav-item\">
        <a class=\"nav-link\" id=\"forgot-password-tab\" data-bs-toggle=\"tab\" href=\"#forgot-password\" role=\"tab\" aria-controls=\"forgot-password\" aria-selected=\"false\">Forgot password</a>
    </li>
    <li class=\"nav-item\">
        <a class=\"nav-link\" id=\"sign-up-tab\" data-bs-toggle=\"tab\" href=\"#sign-up\" role=\"tab\" aria-controls=\"sign-up\" aria-selected=\"false\">Sign up</a>
    </li>
</ul>

<div class=\"tab-content\" id=\"myTabContent\">
    <div class=\"tab-pane fade show active\" id=\"log-in\" role=\"tabpanel\" aria-labelledby=\"log-in-tab\">
        Login tab<br />
    </div>
    
    <div class=\"tab-pane fade\" id=\"forgot-password\" role=\"tabpanel\" aria-labelledby=\"forgot-password-tab\">
        Forgot password tab
    </div>

    <div class=\"tab-pane fade\" id=\"sign-up\" role=\"tabpanel\" aria-labelledby=\"sign-up-tab\">
        Sign-up tab
    </div>
</div>
<br /><br /><br /><br />
I also try to replace href in the nav by data-bs-target

CSS

html { 
  padding: 20px !Important;
  margin: 20px !Important;
}

div.big-spacer { height: 800px;

}

脚本

$(\'.tab-link\').on(\'click\', function(event) {
    event.preventDefault();
    var target = $(\'[data-bs-toggle=\"tab\"][href=\"\' + this.hash + \'\"]\');
    
    target.trigger(\'click\');
    target[0].scrollIntoView(true);
});

    标签: tabs bootstrap-5


    【解决方案1】:

    你得到答案了吗?我也在寻找相同的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 2015-11-08
      相关资源
      最近更新 更多