jQuery Bootstrap动态选项卡(添加和删除)

时间:2016-06-14 12:21:43

标签: jquery twitter-bootstrap tabs

我有我的代码,使用户可以在Bootstrap UI选项卡中添加和删除选项卡。我成功地做到了,是的,它运作良好。

唯一的问题是它没有对标签名称进行排序。例如,有以下标签:Tab 1Tab 2Tab 3Tab 4Tab 5

因此,当我删除Tab 2时,Tab 3将为Tab 2,则Tab 4将为Tab 3,依此类推......

此外,当我删除标签时,活动标签会显示标签1.(请在jsfiddle中查看)

我的两个问题有什么问题吗?

JSFiddle Link:https://jsfiddle.net/cnycmLq0/

<div class="container">
    <div class="row">
        <div class="col-md-12">
            <p>
                <button id="btn-add-tab" type="button" class="btn btn-primary pull-right">Add Tab</button>
            </p>
            <!-- Nav tabs -->
            <ul id="tab-list" class="nav nav-tabs" role="tablist">
                <li class="active"><a href="#tab1" role="tab" data-toggle="tab">Tab 1</a></li>
            </ul>

            <!-- Tab panes -->
            <div id="tab-content" class="tab-content">
                <div class="tab-pane fade in active" id="tab1">Tab 1 content</div>
            </div>
        </div>
    </div>
</div>

JS:

    $(document).ready(function() {
        var tabID = 1;
        $('#btn-add-tab').click(function() {
            tabID++;
            $('#tab-list').append($('<li><a href="#tab' + tabID + '" role="tab" data-toggle="tab">Tab ' + tabID + '<button class="close" type="button" title="Remove this page">×</button></a></li>'));
            $('#tab-content').append($('<div class="tab-pane fade" id="tab' + tabID + '">Tab ' + tabID + ' content</div>'));
        });
        $('#tab-list').on('click', '.close', function() {
            var tabID = $(this).parents('a').attr('href');
            $(this).parents('li').remove();
            $(tabID).remove();

            //display first tab
            var tabFirst = $('#tab-list a:first');
            tabFirst.tab('show');
        });

        var list = document.getElementById("tab-list");
    });

1 个答案:

答案 0 :(得分:3)

我刚刚写了PWideChar来重置您的function并更改其tabs。主要部分是将text存储在button html中,并将varbutton html作为全局变量。您可以在tabID事件中调用此function

remove

<强>

Complete solution in Fiddle