【问题标题】:show dynamically added navlinks when added in bootstrap navbar在引导导航栏中添加时显示动态添加的导航链接
【发布时间】:2013-02-16 07:21:04
【问题描述】:

我是 Bootstrap 的新手,似乎无法弄清楚这一点,我将导航栏用作 Bootstrap 的 javascript 选项卡功能,它可以动态添加和删除导航链接,我使用的是图像而不是默认导航-links,我的问题是当我添加动态导航链接时,它应该成为活动类并显示其相关内容,此时我必须单击使其激活,如果我删除任何导航链接,内容还是一样,有没有办法实现这个功能

html 是:

<ul id="nav-tabs" data-tabs="tabs" >
          <li class="test" ><img src="assets/img/button_home_selected3.png" class="hover" width="83" /><span>Home</span></a> </li>
</ul>

单击此按钮时会添加选项卡:

<a href="#" class="plus" title="Click to add Tabs" ><img src="assets/img/icon_plus.png"/></a>

li 是使用添加的

var counter = 1;    
    $('.plus').click(function(e) {
        e.preventDefault();
        var li_count = $('#nav-tabs').find("li.test").length;
        if (li_count <= 3)
            if(counter <= 3){
                $('#nav-tabs').append('<li class="test" ><img src="assets/img/button_home_selected3.png" class="hover" width="83" /><span>Home</span></a><button type="button" class="close">&times;</button></div></a></li>');
                } else { alert("Only 3 Tabs Allowed!")};

标签的内容稍后添加类似;

选项卡中的活动类使用切换

$("#nav-tabs").on("click", "a", function(e) {
        e.preventDefault();
        $(this).tab('show');
        $('li.test').each(function() {
            if($(this).hasClass('active'))
            {
                //Active class is applied
                $(this).children().children().closest("img").attr("src", "assets/img/button_home_selected3.png");
                $(this).find("button").show();
            }
            else
            {
                $(this).children().children().closest("img").attr("src", "assets/img/button_home_plain2.png");
                $(this).find("button").hide();
            }


        });

使用新导航链接中的按钮关闭关闭 li:

$('.close').click(function(e) {
    e.preventDefault();
    var panelId = $(this).closest("li").remove().attr("aria-controls");
    $("#tab" + panelId).remove();
    $("#nav-tabs").children("li").last().addClass("active");

    if(counter <= 1){
        counter = 1;
        }else if (counter > 1) {
            counter--;
        }
        return false;
})

【问题讨论】:

  • 外面有人吗....

标签: javascript jquery css twitter-bootstrap tabs


【解决方案1】:

您似乎没有使用标准的 Bootstrap nav/nav-tabs 标记。如果我是你,我会像这样简化添加新标签和标签内容...

有一个函数可以创建新标签、标签内容,然后使其处于活动状态。您可以使用tab('show') 方法来激活新创建的选项卡:

$('#btnAdd').click(function (e) {
    var nextTab = $('#tabs li').size()+1;

    // create the tab
    $('<li><a href="#tab'+nextTab+'" data-toggle="tab">Tab '+nextTab+'</a></li>').appendTo('#tabs');

    // create the tab content
    $('<div class="tab-pane" id="tab'+nextTab+'">tab' +nextTab+' content</div>').appendTo('.tab-content');

    // make the new tab active
    $('#tabs a:last').tab('show');
});

Dynamic Bootstrap Tabs Demo

然后你只需要为你的图片定制一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-09
    • 2017-09-28
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多