显示或显示可见的活动标签

时间:2015-10-06 15:01:30

标签: javascript jquery css twitter-bootstrap

我有自举代码的工作代码。在哪里我可以添加和删除选项卡。当标签溢出时,也会显示向下箭头。因此,用户可以单击箭头以查看可用的选项卡数量。 的问题:

  1. 当我从下拉菜单中单击选项卡时,它会使其处于活动状态,但不会向左滚动。这样用户就可以在顶部看到活动标签。
  2. 添加和删除按钮工作。但是当标签溢出时,它会显示新的加号图标以添加新的添加。然后我无法删除。 (可能是DOM准备就绪的问题。)试图在点击时做文件。但那没用。
  3. 同样,当我尝试从下拉菜单中删除标签时,它不会删除。
  4. 谢谢......

    Example Jsfiddle

    chkPlusIcon();
    
     function chkPlusIcon() {
         setTimeout(function () {
             var pageWidth = $(".pull-left-db-nav-tabs").width();
             var lastElementLi = $(".db-nav-tabs");
             var elementWidth = $(lastElementLi).width();
             var elementLeft = $(lastElementLi).position().left;
    
             $('.pull-right-db-nav-tabs-ul').empty();
             if (pageWidth - (elementWidth + elementLeft) < 0) {
                 console.log("overflow!");
                 $('.pull-right-db-nav-tabs').css('display', 'block');
                 if ($('.pull-right-db-nav-tabs-ul li') >= 1) {} else {
                     $('.db-nav-tabs > li').clone().appendTo('.pull-right-db-nav-tabs-ul');
                 } /*  $('.add-tab-last').css('display','none');*/
    
             } else {
                 console.log("doesn't overflow");
                 $('.pull-right-db-nav-tabs').css('display', 'none');
                 $('.pull-right-db-nav-tabs-ul').empty();
    
             }
         }, 500);
     }
     $(window).resize(function () {
         chkPlusIcon();
     });
    
    
     //  add New tabs
    
    
     var tabCount = 9;
     //$('.db-add-new-tab').click(function (e) {
     $(document).on('click', '.db-add-new-tab', function (e) {
         console.log('add tab button clicked');
         chkPlusIcon();
         tabCount++;
         var nextTab = tabCount;
         var addTabLast = $('.db-nav-tabs li.add-tab-last');
         var addTabLastDropDown = $('.pull-right-db-nav-tabs-u li.add-tab-last');
         // create the tab
         $('<li class=""><a href="#tab' + nextTab + '" data-toggle="tab">tab ' + nextTab + '<i class="glyphicon  glyphicon-edit db-edit-tab glyphiconColor db-nav-tab-icons-both " ></i><i class="glyphicon glyphicon-trash db-del-tab glyphiconColor db-nav-tab-icons-both" > </i> </a> </li> ').insertBefore(addTabLast);
         $('<li class=""><a href="#tab' + nextTab + '" data-toggle="tab">tab ' + nextTab + '<i class="glyphicon  glyphicon-edit db-edit-tab glyphiconColor db-nav-tab-icons-both " ></i><i class="glyphicon glyphicon-trash db-del-tab glyphiconColor db-nav-tab-icons-both" > </i> </a> </li> ').insertBefore(addTabLastDropDown);
         // create the tab content
         $('<div class="tab-pane fade in" id="tab' + nextTab + '">tab' + nextTab + ' content</div>').appendTo('.tab-content');
         // make the new tab active
    
         $('#tabs').find('.glyphicon-trash').click(removeTab);
    
    
         $('#tabs a:last').tab('show');
     });
    
    
    
     // remove tab
    
     var removeTab = function () {
         chkPlusIcon();
    
         var contentId = $(this).closest('li').find('a').attr('href');
         contentId = contentId.replace('#', '');
         $('#' + contentId).remove();
         $(this).closest('li').remove();
    
         //$('.pull-right-db-nav-tabs-ul').find('#' + contentId).remove();
         //$('#tabs a:first').tab('show');
         $('#tabs a:first').tab('show');
     };
    
     $('.db-del-tab').click(removeTab);
    

1 个答案:

答案 0 :(得分:0)

我发现的问题

1.你没有给粉红色的div溢出,你怎么滚动它。我认为这是不可能的。
2.无法重现此问题。
3.当我点击粉红色栏中的垃圾时,我得到dashboard-content作为 contentId ,当我点击下拉时我得到overview-content。两者都不相同所以删除下拉列表不起作用。

第3个问题的可能修复是将overview-content替换为dashboard-content,看起来函数removeTab的逻辑不正确。