gpt4 book ai didi

jquery - 页面重新加载后保持当前 Bootstrap 选项卡处于事件状态,而不会跳转到之间的第一个选项卡

转载 作者:行者123 更新时间:2023-12-01 01:13:43 27 4
gpt4 key购买 nike

我在我的应用程序中使用 Bootstrap 药丸:

<div class="container">
<ul class="nav nav-pills">
<li class="active"><a data-target="#home" data-toggle="tab">Home</a></li>
<li><a href="#about" data-toggle="tab">About</a></li>
<li><a href="#contacts" data-toggle="tab">Contacts</a></li>
</ul>
</div>

<div class="tab-content">
<div class="tab-pane active" id="home">Home</div>
<div class="tab-pane" id="about">About</div>
<div class="tab-pane" id="contacts">Contacts</div>
</div>

为了在页面重新加载后保持在同一选项卡上,我使用以下函数:

$(function() {
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
localStorage.setItem('lastTab', $(this).attr('href'));
});
var lastTab = localStorage.getItem('lastTab');
if (lastTab) {
$('[href="' + lastTab + '"]').tab('show');
}
});

问题是,页面重新加载后,第一个选项卡变为事件状态 1 秒,然后跳转到实际事件选项卡。我可以在不进行“跳转”的情况下保留当前选项卡吗?

最佳答案

这一行:

$('[href="' + lastTab + '"]').tab('show');

必须更改为:

$('[data-target="' + lastTab + '"]').tab('show');

您不能引用 href,只能引用 data-target。

同样适用于:localStorage.setItem.....

固定代码( jsfiddle ):

$(function() {
var lastTab = localStorage.getItem('lastTab');
$('.container, .tab-content').removeClass('hidden');
if (lastTab) {
$('[data-target="' + lastTab + '"]').tab('show');
}
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
localStorage.setItem('lastTab', $(this).data('target'));
});
});
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<div class="container hidden">
<ul class="nav nav-pills">
<li><a data-target="#home" data-toggle="tab">Home</a></li>
<li><a data-target="#about" data-toggle="tab">About</a></li>
<li><a data-target="#contacts" data-toggle="tab">Contacts</a></li>
</ul>
</div>

<div class="tab-content hidden">
<div class="tab-pane" id="home">Home</div>
<div class="tab-pane" id="about">About</div>
<div class="tab-pane" id="contacts">Contacts</div>
</div>

关于jquery - 页面重新加载后保持当前 Bootstrap 选项卡处于事件状态,而不会跳转到之间的第一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com