2016-08-16 42 views
1

我在我的應用程序之一中使用了引導選項卡,並且我有一個挑戰,其中在使用默認活動選項卡加載頁面時,沒有觸發shown.bs.tab事件。帶有默認選項卡的shown.bs.tab事件不起作用

在下面的代碼中,我有一個名爲「Home」的選項卡,它是默認選項卡(活動類添加)。在加載頁面時,我的「主頁」標籤內容完美顯示,但挑戰在於未觸發附加到該標籤的「shown.bs.tab」事件。當我導航到「菜單1」選項卡,然後返回到「主頁」選項卡時,會觸發相同的事件。

<ul class="nav nav-tabs"> 
    <li class="active"><a data-toggle="tab" href="#home">Home</a></li> 
    <li><a data-toggle="tab" href="#menu1">Menu 1</a></li> 
</ul> 

<div class="tab-content"> 
    <div id="home" class="tab-pane fade in active"> 
    <h3>HOME</h3> 
    <p>Some content.</p> 
    </div> 
    <div id="menu1" class="tab-pane fade"> 
    <h3>Menu 1</h3> 
    <p>Some content in menu 1.</p> 
    </div> 
</div> 

<script> 
    $(document).ready(function(){ 
    $("a[href='#home']").on('shown.bs.tab', function (e) { 
     alert('tab shown'); 
    }); 
    }); 
</script> 

如何在頁面加載時創建此事件觸發器?這個背後的意圖是「主頁」選項卡的內容是動態的,它是在選項卡上觸發的Ajax調用的響應。

回答

1

通過從HTML中刪除「活動」類並添加腳本來選擇默認顯示的選項卡來解決此問題。

以下是更新後的腳本。

<script> 
    $(document).ready(function(){ 
     $("a[href='#home']").on('shown.bs.tab', function (e) { 
      alert('tab shown'); 
     }).tab('show'); 
    }); 
</script> 

通過此腳本,顯示「主頁」選項卡時,觸發事件。此外,從其他選項卡導航時也會觸發相同的操作。