javascript - 当Tab Bootstarp处于活动状态时,如何更改标题的文本?
问题描述
我有一个选项卡 bootstarp 和我的页面的标题,我想通过单击选项卡来更改页面的标题处于活动状态,但我的 jquery 代码无法正常工作。
$(document.body).on('click', '.chooseChangePass li a', function(e) {
if ($("#chPass").hasClass("active")) {
$("#TitlePage").html("change Password");
} else {
$("#TitlePage").html("change UserName");
}
if ($("#chUserName").hasClass("active")) {
$("#TitlePage").html("change UserName");
} else {
$("#TitlePage").html("change Password ");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 id="TitlePage">change password</h1>
<ul class="chooseChangePass">
<li class="active" id="chPass"><a href="#changePassword" data-toggle="tab">change password</a></li>
<li id="chUserName"><a href="#changeUserName" data-toggle="tab">change UserName</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade" id="changeUserName">
changeUserName
</div>
<div role="tabpanel" class="tab-pane fade in active" id="changePassword">
changePassword
</div>
</div>
解决方案
您缺少用于切换active
类的代码。添加 bootstrap.min.js 文件。此外,else
您的代码中的语句是多余的。
更改选项卡后更改页面标题的正确方法是使用Bootstrap 导航事件。你需要监听shown.bs.tab
事件。
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$('#page-title').html(e.target.text);
});
这是 Bootstrap 4.1.3 的工作示例:https ://codepen.io/anon/pen/OrJOQE?editors=1010
请务必查找您正在使用的 Boostrap 版本的文档,因为版本 3 和 4 之间发生了重大变化。如果您计划在同一页面上有更多选项卡组,请将选项卡选择器更改为命名的选项卡。
推荐阅读
- amazon-web-services - AWS - 为现有 IAM 用户创建独立沙箱
- spring-kafka - 使用 EmbeddedKafka 进行测试 - 证明重试次数
- gremlin - 是否可以重用 GraphTraversal 对象来构建查询链?
- python - uniswap-python“无法从部分初始化的模块‘uniswap’中导入名称‘Uniswap’(很可能是由于循环导入)”
- json - 如何解析 invoke-webrequest 的多级内容输出以便在 PowerAutomate 中进一步使用?
- java - 膨胀类 android.support.v7.widget.FitWindowsFrameLayout 时出错
- reactjs - Redux useSelector 被调用 3 次,只有第 3 次返回 .map() 的数据列表
- python - 为什么这个 Traceback 错误出现在 Python 中?
- kotlin - 在 ktor kotlin 项目中无法正确解决依赖关系
- typescript - 打字稿链接的泛型没有正确区分