Javascript 显示或使活动选项卡可见
我有引导标签的工作代码。我可以在其中添加和删除选项卡。当选项卡溢出时,还显示向下箭头。所以用户可以点击箭头查看有多少选项卡可用。 问题:Javascript 显示或使活动选项卡可见,javascript,jquery,css,twitter-bootstrap,Javascript,Jquery,Css,Twitter Bootstrap,我有引导标签的工作代码。我可以在其中添加和删除选项卡。当选项卡溢出时,还显示向下箭头。所以用户可以点击箭头查看有多少选项卡可用。 问题: 当我从下拉菜单中点击tab时,它会激活,但不会向左滚动。这样用户就可以看到顶部的活动选项卡 添加和删除按钮可以工作。但当选项卡溢出时,它会显示new plus图标以添加新的添加。那我就不能删除了。(可能是DOM就绪时出现问题。)尝试在单击时执行文档。但那没用 当我尝试从下拉菜单中删除选项卡时,它不会删除 谢谢你 chkPlusIcon(); functi
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);
chkPlusIcon();
函数chkPlusIcon(){
setTimeout(函数(){
var pageWidth=$(“.pull left db nav tabs”).width();
var lastElementLi=$(“.db导航选项卡”);
var elementWidth=$(lastElementLi).width();
var elementLeft=$(lastElementLi).position().left;
$('.pull right db nav tabs ul').empty();
如果(页面宽度-(elementWidth+elementLeft)<0){
log(“溢出!”);
$('.pull right db nav tabs').css('display','block');
如果($('.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')*/
}否则{
log(“不溢出”);
$('.pull right db nav tabs').css('display','none');
$('.pull right db nav tabs ul').empty();
}
}, 500);
}
$(窗口)。调整大小(函数(){
chkPlusIcon();
});
//添加新选项卡
var-tabCount=9;
//$('.db添加新选项卡')。单击(函数(e){
$(文档).on('单击','.db添加新选项卡',函数(e){
log('单击添加选项卡按钮');
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');
//创建选项卡
$(“”)。在之前插入(addTabLast);
$(“”)。在之前插入(addTabLastDropDown);
//创建选项卡内容
$('tab'+nextTab+'content')。附录('tab content');
//使新选项卡处于活动状态
$(“#选项卡”)。查找(“.glyphicon垃圾箱”)。单击(移除选项卡);
$(#制表符a:last')。制表符('show');
});
//移除标签
var removeTab=函数(){
chkPlusIcon();
var contentId=$(this.nexist('li').find('a').attr('href');
contentId=contentId.replace('#','');
$('#'+contentId).remove();
$(this).最近('li').remove();
//$('.pull right db nav tabs ul')。查找('#'+contentId)。删除();
//$(#制表符a:first')。制表符('show');
$(#制表符a:first')。制表符('show');
};
$(“.db del选项卡”)。单击(删除选项卡);
我发现的问题
1.你没有给粉色div溢出,你怎么能滚动它。我认为这是不可能的。2.无法复制此问题。
3.当我点击粉色栏中的垃圾时,我得到了
仪表板内容
作为内容ID,当我在下拉列表中点击时,我得到了概述内容
。两者不相同,因此下拉列表中的删除不起作用
第三个问题的可能修复方法是将
概述内容
替换为仪表板内容
,看起来函数删除选项卡的逻辑不正确。谢谢您的回复。我检查了3点,发现问题并修复了它。谢谢。一旦我解决了所有问题,我将在此处更新。请查看我的新问题。or-jsfiddle