14

n個のタブがあり、次のスクリプト(coffeescript、コンパイルされたjavascriptを確認しましたが、問題ないようです)があるページで...

$ ->
    init()

init = ->
    $('a[data-toggle="tab"]').on 'shown', (event) ->
        shown = event.target
        console.log("Showing tab: " + shown)

現在、「shown」イベントはページの読み込み時に発生しないため、ページに表示されている最初のタブでは、これを処理する方法はありません(つまり、xhrを介したコンテンツの読み込み)

これを上記のスクリプトに追加して、手動でトリガーできるかどうかを確認しました。

$('a[data-toggle="tab"]:first').tab 'show'

...しかし、そうではありませんでした。

これは私のビューで使用するHTMLコードです

<div class="tabbable">
<ul class="nav nav-tabs">
    <li class="active">
        <a href="#updates" data-toggle="tab"><%=t :updates, :scope => 'user.profile.sections'%></a>
    </li>
    <li class="">
        <a href="#activity" data-toggle="tab"><%=t :activity, :scope => 'user.profile.sections'%></a>
    </li>
    <li class="">
        <a href="#articles" data-toggle="tab"><%=t :articles, :scope => 'user.profile.sections'%></a>
    </li>
</ul>

<div class="tab-content">
    <div class="tab-pane active" id="updates">

    </div>
    <div class="tab-pane" id="activity">

    </div>

    <div class="tab-pane" id="articles">

    </div>

</div>
</div>

どんな手掛かり?

4

4 に答える 4

28

activeタブ<li>とコンテンツの両方からクラスを除外してみてください<div>メソッドのコードshow()の最初の行の 1 つは、要求されているタブが既にアクティブな場合に短絡することです。

JSFiddle

于 2012-08-01T15:47:43.310 に答える
13

ページにタブを表示するように指示すると、イベントを手動でトリガーできます。

$('a[data-toggle="tab"]:first').trigger("shown.bs.tab");
于 2013-10-31T21:23:18.367 に答える
0

クラスとIDによって管理されるBootstrap Javascript ToggableタブとBasicタブを混在させていると思います

Javascript を使用してタブを管理する場合は、次のように LI 要素のアンカーから data-toggle="tab" を削除する必要があります: http://getbootstrap.com/2.3.2/javascript.html#tabs

構文を基本タブと比較できます: http://getbootstrap.com/2.3.2/components.html#navs

于 2013-08-21T16:56:23.790 に答える