首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导3 Nav药丸Nav Tabs动态加载/显示

引导3 Nav药丸Nav Tabs动态加载/显示
EN

Stack Overflow用户
提问于 2015-09-17 15:09:20
回答 1查看 1.4K关注 0票数 1

我创建了一个php函数,它允许jQuery创建一个引导药片/标签的选项卡内容div。我可以让它动态地加载数据,只是无法得到它来显示下面的数据。药片/标签--它们自己显示得很好,当我点击相关标签时,它的内容就没有显示出来。联系人将加载到所需的选项卡中。但并没有给它一个活跃的类。

代码语言:javascript
复制
function BStabs($divId)
{
    ?>
    <script>
    jQuery(document).ready(function()
    {
        var div = '<?php echo $divId;?>';
        var html = "";
        html += '<div class="tab-content">';
        jQuery('#'+div+' ul').each(function()
        {
            jQuery(this).addClass('nav nav-pills');
        });
        jQuery('#'+div+' ul li a').each(function()
        {
            jQuery(this).attr('data-toggle', 'pill');

            var href = $(this).attr("data-target");
            html += '<div id="'+href+'" role="tabpanel" class="tab-pane"></div>';
            jQuery(this).attr('aria-controls',href);
            jQuery(this).attr('role','tab');
        });
        html += '</div>';
        jQuery('#'+div).append(html);

        var first = '#'+div+' ul li:first a';
        var url = $(first).attr("rel");
        var href = $(first).attr("data-target");
        var pane = $(first);
        $('#'+href).load(url,function(result){      
            pane.tab('show');
        });
        jQuery('.nav-pills > li > a').click(function(e)
        {
            var url = jQuery(this).attr("rel");
            var href = jQuery(this).attr("data-target");
            var pane = jQuery(this);
            jQuery('#'+href).load(url,function(result){      
                pane.tab('show');
            });
        });
    });
    </script>
    <?
}

下面是我调用该函数的地方:

代码语言:javascript
复制
echo "<div id=\"myMessages\">";
echo "<ul>";
echo "<li><a data-target=\"todos\" rel=\"/URLforAJAXfunction\">A1</a></li>";
echo "<li><a data-target=\"asstodos\" rel=\"/URLforAJAXfunction\">A2</a></li>";
echo "</ul>";
echo "</div>";
BStabs("myMessages");

我主要修改了这个引导http://www.bootply.com/63891的代码

我还添加了一个JSFiddle链接http://jsfiddle.net/9n6qLt0g/,供人们使用,如果他们愿意的话。真的需要这个才行。我希望JS创建选项卡内容div,然后所有相关的子div在单击时变为活动。

EN

回答 1

Stack Overflow用户

发布于 2015-09-18 10:32:17

好吧,我已经玩了很久了。我想这是个小问题,但我还是让它发挥作用了:

如果有人想看(改进代码) http://jsfiddle.net/daza110/9n6qLt0g/3/

代码语言:javascript
复制
jQuery(document).ready(function()
{
    var div = 'myMessages';
    var html = "";
    html += '<div class="tab-content">';
    jQuery('#'+div+' ul').each(function()
                               {
        jQuery(this).addClass('nav nav-pills');
    });
    jQuery('#'+div+' ul li a').each(function()
                                    {
        jQuery(this).attr('data-toggle', 'pill');

        var href = jQuery(this).attr("data-target");
        html += '<div id="'+href+'" role="tabpanel" class="tab-pane fade"><p>'+href+'</p></div>';
        jQuery(this).attr('aria-controls',href);
        jQuery(this).attr('role','tab');
    });
    html += '</div>';
    jQuery('#'+div).append(html);

    var first = '#'+div+' ul li:first a';
    var url = jQuery(first).attr("rel");
    var href = jQuery(first).attr("data-target");
    var pane = jQuery(first);

    jQuery('#'+href).load(url,function(result){      
        pane.tab('show');
        jQuery('#'+href).addClass("active in");
    });
    jQuery('.nav-pills > li > a').click(function(e)
    {
        jQuery('#'+div+' .tab-content > div').each(function(e)
        {
            jQuery(this).removeClass("active in");
        });
        var url = jQuery(this).attr("rel");
        var href = jQuery(this).attr("data-target");
        var pane = jQuery(this);
        jQuery('#'+href).load(url,function(result){      
            pane.tab('show');
            jQuery('#'+href).addClass("active in");
        });
    });
});

我所添加的是,当动态选项卡被创建时,它们也会被赋予淡出类。然后,当自动选择页面加载和选项卡时,当单击选项卡时,它会删除容器div中"active in“中的所有类,并将类"active in”添加到相关的content选项卡中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32633858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档