使用jQuery和Twitter Bootstrap查找活动选项卡
我一直在绞尽脑汁想了一会儿,我想知道有没有人知道如何find活动选项卡,使用jQuery和Twitter的Bootstrap。 从URL中抽取散列不是我的第一select,我在<a>
链接中使用data-toggle
属性,因此不需要生成URL散列。
任何见解? 以下是我的标记示例:
<ul class="nav nav-list" id="sampleTabs"> <li><a href="#example" data-toggle="tab">Tab 1</a></li> </ul> <div class="tab-content"> <div class="tab-pane fade active in" id="example"> Example Tab </div> </div> <script> $('#sampleTabs a:first').tab('show'); </script>
我打开任何build议 – 使用PHP会话,JS cookie等
编辑:这是真正的问题。 我有一个使用PHP的分页系统,所以当一个页面号码或next / prev箭头被点击,它将重新加载页面。 这就是为什么我需要在加载下一页之前find活动选项卡,因为我只是将它传递到URL或会话等。
Twitter Bootstrap将active
类分配给代表活动选项卡的li
元素:
$("ul#sampleTabs li.active")
另一种方法是绑定每个选项卡的shown
事件,并保存活动选项卡:
var activeTab = null; $('a[data-toggle="tab"]').on('shown', function (e) { activeTab = e.target; })
这里是需要Boostarp 3解决scheme的人的答案。
在bootstrap 3中,在下一行使用“shown.bs.tab”而不是“shown”
// tab $('#rowTab a:first').tab('show'); $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { //show selected tab / active console.log ( $(e.target).attr('id') ); });
首先,您需要删除数据切换属性。 我们将使用一些JQuery,所以确保你包含它。
<ul class='nav nav-tabs'> <li class='active'><a href='#home'>Home</a></li> <li><a href='#menu1'>Menu 1</a></li> <li><a href='#menu2'>Menu 2</a></li> <li><a href='#menu3'>Menu 3</a></li> </ul> <div class='tab-content'> <div id='home' class='tab-pane fade in active'> <h3>HOME</h3> <div id='menu1' class='tab-pane fade'> <h3>Menu 1</h3> </div> <div id='menu2' class='tab-pane fade'> <h3>Menu 2</h3> </div> <div id='menu3' class='tab-pane fade'> <h3>Menu 3</h3> </div> </div> </div> <script> $(document).ready(function(){ // Handling data-toggle manually $('.nav-tabs a').click(function(){ $(this).tab('show'); }); // The on tab shown event $('.nav-tabs a').on('shown.bs.tab', function (e) { alert('Hello from the other siiiiiide!'); var current_tab = e.target; var previous_tab = e.relatedTarget; }); }); </script>