【发布时间】:2020-08-15 09:00:36
【问题描述】:
我遇到了切换标签的问题。在下一个 sn-p 中,您可以切换:vk -> spotify、spotify -> vk 并停止。下一个 vk -> spotify 不会更改选项卡。为什么?
$('#sourcePlatform').on('change', function (e) {
var $optionSelected = $('option:selected', this);
$optionSelected.tab('show');
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<select id="sourcePlatform">
<option data-target="#vk_platform">Vk</option>
<option data-target="#spotify_platform">Spotify</option>
</select>
<div class="tab-content">
<div class="tab-pane active" id="vk_platform">VK</div>
<div class="tab-pane" id="spotify_platform">Spotify</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
更新
根据documentation.tab('show'):
选择给定的列表项并显示其关联的窗格。任何其他 先前选择的列表项变为未选择,其 关联的窗格被隐藏。返回到选项卡窗格之前的调用者 已实际显示(例如,在 shown.bs.tab 事件之前 发生)。
但在这种情况下,active 类保留先前的选择。
【问题讨论】:
-
在这样的功能中,我希望在显示点击的标签之前找到一行隐藏标签
-
@AlwaysHelping 我看到了。但我不明白为什么这个
active课程会坚持下去。根据文档,它必须被隐藏。 -
@Viewed 您正在使用 onchange 函数,因此它为什么成立。一旦循环完成,它就不会识别更改。如果你对
a做同样的事情,那么文档是正确的,但也是如此 => 每个选项卡都需要单独激活 -
阅读here 了解更多信息 => 通过 JavaScript 启用可选项卡(每个选项卡需要单独激活)
-
@AlwaysHelping 你知道如何改变默认行为以使其与
option标记一起工作,例如a标记。
标签: javascript jquery bootstrap-4 bootstrap-tabs