4

Twitter-Bootstrap タブhttp://www.dba-resources.com/scripting-programming/ajax-tabs-in-bootstrap-2-1/にこの例を実装しようとしていますが、AJAX 経由でコンテンツをロードする必要があります。複数のドキュメントをロードするのではなく、同じドキュメント内の div コンテナからコンテンツをロードします。私が使用しているコードは次のとおりです。

jQuery

$(function() {
    $("#MainTabs").tab();
    $("#MainTabs").bind("show", function(e) {    
        var contentID  = $(e.target).attr("data-target");
        var contentURL = $(e.target).attr("href");
        if (typeof(contentURL) != 'undefined')
            $(contentID).load(contentURL, function(){ $("#MainTabs").tab(); });
        else
            $(contentID).tab('show');
        });
    $('#MainTabs div[data-target="#tabone"]').tab("show");
});

HTML

<ul id="MainTabs" class="nav nav-tabs">
    <li><div data-target="#tabone" data-toggle="tab">tab One</div></li>
    <li><div data-target="#tabtwo" data-toggle="tab" href="/test.html">Tab Two</div></li>
    <li><div data-target="#tabthree" data-toggle="tab" href="/test2.html">Tab Three</div></li>
</ul>
<div class="tab-content">
    <div class="tab-pane" id="tabone">Content Tab One</div>
    <div class="tab-pane" id="tabtwo">Loading...</div>
    <div class="tab-pane" id="tabthree">Loading...</div>
</div>

よろしくお願いします。

4

1 に答える 1

7

idコンテナの を に渡すだけの場合、これがデフォルトの動作になりますhref

<li><div data-target="#tabone" data-toggle="tab" href="#loadedcontent">tab One</div></li>

....

<div id="loadedcontent">My content</div>

AJAX 呼び出しを介してページの特定のコンテナーをロードする特別なケースがあるためです。このようなことができます。

HTML

<li><div id="specialTab" data-target="#tabone" data-toggle="tab" href="/ajax.html">tab one</div></li>

JS

$('#specialTab').click(function(e) {
    e.preventDefault();
    var containerId = '#content'; /** Specify which element container */
    var self = $(this);
    var url = self.attr('href');
    $(self.data('target'))
        .load(url +' '+ containerId, function(){
           self.tab('show');
        });
});
于 2013-02-06T01:59:07.030 に答える