2

アプリケーションの 1 つでブートストラップ タブを使用していますが、デフォルトのアクティブなタブでページが読み込まれると、showd.bs.tab イベントがトリガーされないという課題があります。

以下のコードには、デフォルトのタブである「ホーム」という名前のタブがあります(アクティブなクラスが追加されています)。ページの読み込み時に、「ホーム」タブのコンテンツは完全に表示されますが、問題は、そのタブに関連付けられている「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 呼び出しの応答が表示されることです。

4

2 に答える 2