[英]How to navigate to a new bootstap 4 tab on the same page from a sidebar link?
我无法使用此技术获取侧边栏链接以导航到中心页面上的引导程序 4 个选项卡。 这是我的_SidebarLayout.cshtml
的 javascript:
<script>
function selectTabNamedInUrlHash() {
let selectedTab = window.location.hash;
$('.nav-link[href="' + selectedTab + '"]').trigger('click');
}
jQuery(document).ready(function ($) {
selectTabNamedInUrlHash();
})
</script>
侧边栏锚链接到页面并将片段(哈希)添加到我要导航到的选项卡的 href(网址结尾:SPC#SpcFilm)。 侧边栏链接也调用了上面的函数。
<a onclick="selectTabNamedInUrlHash();" asp-page="/SPC/Index" asp-fragment="SpcFilm">Film</a>
在 Index.cshtml 上,Bootstrap 4 选项卡由href="#SpcFilm"
标识此解决方案在导航到新页面时有效,但在导航到同一页面上的另一个选项卡时不起作用。
我在一位同事的帮助下在这里回答我自己的问题。 使用现代浏览器的 hashchange 事件(jQuery 可以识别)来选择选项卡。 在 Bootstrap 中,使用data-toggle="tab"
或data-toggle="pill"
激活 4 个选项卡。 所以唯一需要的脚本是:
<script>
$(window).on('hashchange ready', function () {
let selectedTab = window.location.hash;
$('a[href="' + selectedTab + '"][data-toggle="tab"]').trigger('click');
});
</script>
每个侧边栏链接都包含一个与所需选项卡的 href 匹配的哈希值。 当侧边栏链接被单击时,上面的 jQuery 会触发对选项卡的单击,从而打开页面上的选项卡。
注意:一定要去掉onclick="selectTabNamedInUrlHash();"
从侧边栏链接中删除相应的功能,因为它不再需要并且可能会干扰解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.