jquery - JQuery在引导选项卡中隐藏最后一个下一个按钮
问题描述
我使用引导选项卡来查看我的内容,在每个选项卡内都有一个下一个和上一个按钮来浏览每个选项卡,这是我的 HTML:
<div class="nav nav-thumb" id="thumb-tabs" role="tablist">
<a class="nav-link nav-link-thumb active" id="1-tab" data-toggle="pill" href="#thumb-item-1" role="tab" aria-controls="thumb-item-1" aria-selected="true">
1st item
</a>
<a class="nav-link nav-link-thumb" id="2-tab" data-toggle="pill" href="#thumb-item-2" role="tab" aria-controls="thumb-item-2" aria-selected="false">
2nd item
</a>
<a class="nav-link nav-link-thumb" id="3-tab" data-toggle="pill" href="#thumb-item-3" role="tab" aria-controls="thumb-item-3" aria-selected="false">
3rd item
</a>
</div>
<div class="tab-content" id="thumbcontent">
<div class="tab-pane fade show active" id="thumb-item-1" role="tabpanel" aria-labelledby="1-tab">
1st content
<div class="btn-container">
<a class="next">next</a>
</div>
</div>
<div class="tab-pane fade" id="thumb-item-2" role="tabpanel" aria-labelledby="2-tab">
2nd content
<div class="btn-container">
<a class="prev">prev</a>
<a class="next">next</a>
</div>
</div>
<div class="tab-pane fade" id="thumb-item-3" role="tabpanel" aria-labelledby="3-tab">
3rd content
<div class="btn-container">
<a class="prev">prev</a>
<a class="next">next</a>
</div>
</div>
</div>
这是给我的 JS 的:
$('.next').click(function(){
$('#thumb-tabs > .active').next('a').trigger('click');
});
$('.prev').click(function(){
$('#thumb-tabs > .active').prev('a').trigger('click');
});
我想要做的是隐藏最后一个选项卡项目中的下一个按钮,问题是我使用 Wordpress 和工具集视图动态创建它,所以我不能只删除最后一个项目中的下一个按钮,所以如果有办法检测它是否已经到达选项卡上的最后一项,它将触发隐藏该选项卡内容上的下一个按钮?
解决方案
您可以编写一个通用函数来检查第一个或最后一个选项卡是否处于活动状态,因此您可以禁用/隐藏上一个和下一个按钮。
请看下面的示例代码
$('.next').click(function(){
$('#thumb-tabs > .active').next('a').trigger('click');
showHideButtons();
});
$('.prev').click(function(){
$('#thumb-tabs > .active').prev('a').trigger('click');
showHideButtons();
});
function showHideButtons() {
//check if first tab is active
if( $('#thumb-tabs > a:first').hasClass('active')){
$('.prev').hide();
} else{
$('.prev').show();
}
//check if last tab is active
if( $('#thumb-tabs > a:last').hasClass('active')){
$('.next').hide();
} else{
$('.next').show();
}
}
您也可以在单击选项卡时调用showHideButtons()
函数,以便下一个和上一个按钮将隐藏显示。
推荐阅读
- protractor - 一旦找到预期的元素,如何打破量角器中的 .all().each() 循环?
- python - (Python) 在字符串中添加负数
- ethereum - 松露初始化失败
- opera - Opera 中奇怪的 net::ERR_BLOCKED_BY_ADBLOCKER
- google-api - 无法解析输入字符串“2019 年 12 月 31 日”错误
- python - 如何在不同的 docker 容器中建立微服务之间的通信?
- php - 使用未定义的常量 CURLOPT_TCP_FASTOPEN
- java - SonarQube 自定义插件 - 创建测量规则
- asp.net-core - 我可以使用 IJSRuntime *without* Blazor,例如在纯 ASP.NET Core Razor 页面中吗?
- c++ - 如何在同一功能中同时启动 TCP 和 UDP 客户端?