【问题标题】:Twitter-Bootstrap tabs load container content via AJAXTwitter-Bootstrap 选项卡通过 AJAX 加载容器内容
【发布时间】:2013-02-06 00:52:30
【问题描述】:

我正在尝试为 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>

提前感谢您的帮助。

【问题讨论】:

    标签: ajax jquery twitter-bootstrap


    【解决方案1】:

    如果您只是将容器的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');
            });
    });
    

    【讨论】:

    • 谢谢丹妮丝。需要从外部文件加载特定的容器(div)。默认行为不是我需要的。
    • 再次感谢。那么在这种情况下,tabtwo 在 /ajax.html 中加载另一个容器的代码是什么?说#contenttwo。每个选项卡都会从相同的外部 html 加载不同的容器
    • 在这种情况下,您可以使 &lt;div class="specialTab" data-container="#container" data-toggle="tab" href="/ajax.html"&gt;&lt;/div&gt;data-container 指定您要捕获的元素。然后,您将替换 var containerId=self.data('container'); 以获取容器元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多