我正在关注如何使用以下方式重新加载当前活动标签的this recommendation:
$('#tab-loaded-content').load($('li.active a[data-toggle="tab"]').attr('href'));
但是当我尝试这个时,结果是它加载了最初激活的选项卡(在我的html中定义为活动选项卡)而不是当前活动选项卡。 所以我正在寻找一些帮助来弄清楚如何做到这一点。
以下是我的问题的简化版本:
<!DOCTYPE html>
<html>
<head>
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/css/bootstrap-combined.min.css" rel="stylesheet">
</head>
<body>
<div class="tabbable">
<ul id="mainTabs" class="nav nav-tabs">
<li class="active"><a href="#tabWelcome" data-toggle="tab">Home</a></li>
<li><a href="#tabProject" data-toggle="tab">Project</a></li>
<li><a href="#tabEmail" data-toggle="tab">Invite Friends</a></li>
<li><a href="#tabProfile" data-toggle="tab">My Profile</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabWelcome">
welcome
</div>
<div class="tab-pane" id="tabProject">
project
<button id="button" class="btn">Create Project</button>
</div>
<div class="tab-pane" id="tabEmail">
email
</div>
<div class="tab-pane" id="tabProfile">
profile
</div>
</div>
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/js/bootstrap.min.js"></script>
<script>
document.getElementById("button").addEventListener("click", function() {
$('#mainTabs').load($('li.active a[data-toggle="tab"]').attr('href'));
}, false);
</script>
</body>
</html>
这个想法是当点击第二个标签上的“项目”按钮时,它应该重新加载该标签,但它会重新加载“欢迎”标签。
任何建议表示赞赏!
答案 0 :(得分:4)
我必须实现一个非常相似的功能。
基本上你需要掌握当前标签'停用'并再次显示它。
$(document).on('click', '#refresh', function () {
var $link = $('li.active a[data-toggle="tab"]');
$link.parent().removeClass('active');
var tabLink = $link.attr('href');
$('#mainTabs a[href="' + tabLink + '"]').tab('show');
});
请参阅我的jsFiddle了解工作演示。
请注意,该演示使用的是Bootstrap 3,因此使用shown.bs.tab
事件来显示标签加载时的时间。