jQuery,Bootstrap单击以删除选项卡

mcneela86

我建立了一些功能,允许用户添加和删除选项卡。“添加”功能按我希望的方式工作,只有5个标签可见,其余的将显示在下拉列表中。jsfiddle

添加“删除”功能时,我遇到一些问题。选项卡已被正确删除,但是现在可以解决以下问题:

  1. 如果我添加了6个以上的标签(例如12个),并且单击了按钮以删除当前选择的标签(有效),则在第一个下拉元素上设置了“ .active”类,使其无法单击?我尝试了以下方法:

    $('.dropdown ul #tab6').parent().removeClass('active');

  2. 我也不确定在删除标签时如何更新标签上的数字。例如,我有设备[1、2、3、4、5、6、7、8、9、10、11、12],并且删除了设备/标签9,如何仍按顺序读取这些标签([1 ,[2、3、4、5、6、7、8、9、10、11],而不是[1、2、3、4、5、6、7、8、10、11、12])?
  3. 是否有观点认为第2点是解决此问题的正确方法?

我真的很坚持,所以任何帮助将不胜感激。

编辑:

我已经意识到,选项卡的ID无关紧要,只要它们是唯一的即可。我已经更新了小提琴,它添加了一个简单的.each()来更新选项卡选择中的文本。

当我从下拉菜单中删除标签页时,仍然存在选择第一个下拉菜单的问题,有人可以帮忙吗?

Artur Filipiak

另一种方法。它应该是您要寻找的。

HTML(稍作修改)

<script id="tabTemp" type="text/x-jquery-tmpl"> 
    <div class='tab-pane' id='tab${device}'>
        This is device number <span class="dev-nr"></span>
        <p>Random string (to see tabs difference): <b>${randomStr}</b></p>
        <div>
            <a href="#" class="btn btn-danger btn-remove btnRmv">Remove device</a>
        </div>
    </div>
</script>
<script id="navTemp" type="text/x-jquery-tmpl"> 
    <li class="li-tab-toggle">
        <a href="#tab${device}" class="tab-toggle" data-toggle="tab">
            Device <span class="dev-nr"></span>
        </a>
    </li>
</script>
<script id="dropTemp" type="text/x-jquery-tmpl"> 
    <li class="dropdown">
        <a href="#" data-toggle="dropdown" class="dropdown-toggle">
            More Devices <b class="caret"></b>
        </a>
        <ul class="dropdown-menu" id="drop"></ul>
    </li>
</script>

<a href="#" class="btn btn-primary" id="btnAdd">Add device</a>
<ul class="nav nav-tabs" id="tabs">
    <li class="li-tab-toggle active"><a class="tab-toggle" href="#tab1" data-toggle="tab">Device 1</a></li>
</ul>
<div class="tab-content">
    <div class="tab-pane active" id="tab1">Device 1 content</div>
</div>

脚本:

var maxTabs = 4, index = 1;

$('#btnAdd').click(function(e){
    e.preventDefault();
    index++;
    $('.tab-toggle').length !== maxTabs || 
        $('#tabs').append($.tmpl(dropTemp))
        .find('#drop').append($('.li-tab-toggle:last').removeClass('active'));

    $.tmpl(navTemp, {"device" : index}).insertAfter('.li-tab-toggle:last');
    $.tmpl(tabTemp, {"device" : index}).appendTo('.tab-content');
    $('.li-tab-toggle:last a').tab('show');
    updateTabs();
});

$(document).on('click', '.btnRmv', function(e){
    var tabs = $('.li-tab-toggle').length,
        nav = $('.li-tab-toggle.active');

    nav.parent('#tabs').find('#drop li:first').insertBefore('#tabs .dropdown');
    tabs !== maxTabs+1 || $('#drop li').insertBefore('#tabs .dropdown').siblings('.dropdown').remove();

    $('a', nav.is('li:last') ? nav.prev() : nav.next()).tab('show');
    nav.add($('a', nav).attr('href')).remove();
    updateTabs();
});

function updateTabs(){
    for(var i=0; i < $('.tab-toggle').length; i++){
        $('.tab-toggle:eq('+i+') .dev-nr, .tab-pane:eq('+i+') .dev-nr').text(i+1);
    }
}

演示版

还有一点美化版本

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery如果Bootstrap选项卡未激活则删除div

来自分类Dev

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

来自分类Dev

在Bootstrap中激活单击的选项卡

来自分类Dev

单击以打开“ jQuery UI”选项卡

来自分类Dev

jQuery在“单击”选项卡上添加类,并在未单击时删除

来自分类Dev

jQuery Twitter Bootstrap选项卡选择

来自分类Dev

Angular-Bootstrap UI选项卡:“删除”选项卡选项

来自分类Dev

单击选项卡后,Angular Bootstrap选项卡更改URL

来自分类Dev

Bootstrap 选项卡 - 单击选项卡时不显示内容

来自分类Dev

jQueryUI Stackable(删除不同选项卡上的内容单击)

来自分类Dev

单击选项卡时Bootstrap隐藏工具提示

来自分类Dev

单击选项卡时,jQuery选项卡滚动到内容

来自分类Dev

Django + Jquery +选项卡,单击时不显示选项卡

来自分类Dev

Django + Jquery +选项卡,单击时不显示选项卡

来自分类Dev

jQuery tabselect在单击选项卡时不起作用

来自分类Dev

如何禁用JQuery选项卡上的单击事件?

来自分类Dev

检测使用jQuery单击了哪个选项卡

来自分类Dev

单击导航选项卡时分配jQuery函数

来自分类Dev

jQuery单击选项卡以打开和关闭

来自分类Dev

如何禁用JQuery选项卡上的单击事件?

来自分类Dev

jQuery,再次单击时关闭选项卡菜单

来自分类Dev

jQuery tabselect在单击选项卡时不起作用

来自分类Dev

删除Bootstrap 3选项卡之间的空间

来自分类Dev

删除Bootstrap 3选项卡之间的空间

来自分类Dev

侦听选项卡控件中的选项卡单击

来自分类Dev

AngularJS的Bootstrap选项卡

来自分类Dev

Bootstrap嵌套选项卡

来自分类Dev

悬停使用jQuery删除当前选项卡

来自分类Dev

从javascript函数添加删除jQuery选项卡

Related 相关文章

热门标签

归档