javascript - 引导选项卡选项卡(“显示”)拒绝工作
问题描述
再会,
我正在创建一个带有引导选项卡(BS4)的页面。
现在我需要一个前进和后退按钮表单导航,并且我想使用 BS4 的选项卡(“显示”)功能。
然而,即使在概念验证中,我也无法让它发挥作用。我想知道我做错了什么。
我检查了是否设置了所有 ID 以及是否所有内容都匹配。到目前为止一切都是正确的。控制台日志没有给我任何错误或任何错误。
我希望我正在制作一个简单的错误,这不是引导问题。
在我的概念验证代码下方:
我的functions.js文件的内容:
function activaTab(tab) {
var tabID = '#' + tab;
console.log('You just clicked on a function to activate tab : ' + tabID);
if ($(tabID).length == 0) {
console.log('But I have to inform you of the misfortunate event that the tab ID you want to pick strangely does not exist');
}
$('.nav-tabs a[href="' + tabID + '"]').tab('show'); // Select tab by name
};
我的 HTML 文件的内容:
function activaTab(tab) {
var tabID = '#' + tab;
console.log('You just clicked on a function to activate tab : ' + tabID);
if ($(tabID).length == 0) {
console.log('But I have to inform you of the misfortunate event that the tab ID you want to pick strangely does not exist');
}
$('.nav-tabs a[href="' + tabID + '"]').tab('show'); // Select tab by name
};
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-contact-tab" data-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">..home.<br />
<button class="btn btn-lg btn-primary" onclick="activaTab('pills-profile');">go to profile</button>
</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">..profile.<br />
<button class="btn btn-lg btn-primary" onclick="activaTab('pills-contact');">go to contact</button>
</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">..contact.</div>
</div>
</div>
<!DOCTYPE html>
<html>
<head>
<title>activate tab</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="functions.js"></script>
</head>
<body>
<div class="container">
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-contact-tab" data-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">..home.<br />
<button class="btn btn-lg btn-primary" onclick="activaTab('pills-profile');">go to profile</button>
</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">..profile.<br />
<button class="btn btn-lg btn-primary" onclick="activaTab('pills-contact');">go to contact</button>
</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">..contact.</div>
</div>
</div>
</body>
</html>
编辑:
一个非常疲惫的头脑导致了这个..
$('.nav-tabs a[href="' + tabID + '"]').tab('show'); // 按名称选择标签
要更改:
$('.nav-pills a[href="' + tabID + '"]').tab('show'); // 按名称选择标签
解决方案
在您的 activaTab() 方法中,您正在对具有类名nav-tabs的元素调用tab('show'),但您希望显示的元素具有类nav-pills。正确的调用应该是:
$('.nav-pills a[href="' + tabID + '"]').tab('show'); // Select tab by name
推荐阅读
- html - 在 Google 表格侧边栏上看不到验证气泡
- c# - 如何在日历视图中展开日历事件中的 Microsoft Graph 扩展属性
- c# - C# openid-connect server & client implementation with .NET Core 5+, (MSAL?) and Keycloak
- r-extension - 在 netlogo r-extension 中使用循环 (i)
- python - 如何在曲线 Python 下绘制随机值?
- java - 在 Mybatis 的嵌套集合中再次使用相同的结果集
- c++ - 对象范围问题
- python - 在引用原始变量后编辑它
- android - Android Kotlin - 从 url 下载视频到 InputStream / RAM 无需许可和共享
- javascript - 我的创建语音通道命令不起作用,我不明白为什么它无法识别“执行”,我该如何解决?