我有一个导航栏,使用 Twitter Bootstrap,在其中一个选项卡
我可以改变那个选项卡,但是我无法将新的选项卡
我已经调整了示例代码,新的代码使它看起来与之前相似。您可以点击选项卡 2 内部的图像进行测试。
希望能帮到你。
(#B ..)
中,我有一张图片,点击它会切换到另一个选项卡 (#C ..)
。我可以改变那个选项卡,但是我无法将新的选项卡
(#C ..)
设置为活动状态。并且需要将这个图片选项卡 (#B ..)
设置为非活动状态(例如移除类 active)。<ul class="nav nav-tabs">
<li class="nav active"> <a [attr.href]="'#A' + cObj" data-toggle="tab"> Info </a></li>
<li class="nav"> <a [attr.href]="'#B' + cObj" data-toggle="tab"> Info </a></li>
<li class="nav"> <a [attr.href]="'#C' + cObj" data-toggle="tab"> Info </a></li>
</ul>
<div class="tab-pane fade" [id]="'B' + cObj">
..//
<a [attr.href]="'#C' + cObj" data-toggle="tab">
<img...>
..//
我尝试以各种方式使用[class.active] =" false "
,例如[ '#B' + cObj.class.active] =" false "
等,但我无法做到,有什么帮助可以提供给我。
我希望能够激活和停用选项卡,在不同选项卡之间切换。对我的糟糕英语表示抱歉,希望您能理解我的问题。
更新: 我使用以下方法解决了问题。
也许用户的反馈可以帮助其他人:
<ul class="nav nav-tabs">
<li class="nav active" [id]="'IDA' + contadorObjet.name" [class.active]="testLocation1() == ('A' + contadorObjet.name) || '10'" > <a [attr.href]="'#A' + contadorObjet.name" data-toggle="tab"> Info </a></li>
<li class="nav" [id]="'IDB' + contadorObjet.name" [class.active]="testLocation1() == 'B' + contadorObjet.name"> <a [attr.href]="'#B' + contadorObjet.name" data-toggle="tab"> Info </a></li>
<li class="nav" [id]="'IDC' + contadorObjet.name" [class.active]="testLocation1() == 'C' + contadorObjet.name"> <a [attr.href]="'#C' + contadorObjet.name" data-toggle="tab"> Info </a></li>
</ul>
注意:'10'是测试的父ID
<a [attr.href]="'#C' + contadorObjet.name" data-toggle="tab"
#elem (click)="testLocationAct(elem.href, 'IDB' + contadorObjet.name)" >
testLocation1():string{
//alert(document.activeElement.toString().split(/#(.+)?/)[1]);
return document.activeElement.toString().split(/#(.+)?/)[1];
}
testLocationAct(test: any, test1: any){
document.getElementById(test1).classList.remove('active');
document.activeElement = test;
}
更新:
你能在这里添加一个 Plunker 吗?我正在尝试侧边栏数据切换,但它不起作用。- Gary
之前它对我想要的东西很好用,发布后我做了一些更改,现在工作得更好了(我想)。
<div class="container" *ngFor="#contadorObjeto of contadorObjetos ; #contadorObjetoI = index" nginit="test='#' id=10">
<ul class="nav nav-tabs">
<li class="nav active" [id]="'IDA' + contadorObjeto.name" ([class.active])="testLocation1() == ('A' + contadorObjeto.name) || '10'"> <a [attr.href]="'#A' + contadorObjeto.name" data-toggle="tab"> Info </a></li>
<li class="nav" [id]="'IDB' + contadorObjeto.name" ([class.active])="testLocation1() == 'B' + contadorObjeto.name"> <a [attr.href]="'#B' + contadorObjeto.name" data-toggle="tab"> Info </a></li>
<li class="nav" [id]="'IDC' + contadorObjeto.name" ([class.active])="testLocation1() == 'C' + contadorObjeto.name"> <a [attr.href]="'#C' + contadorObjeto.name" data-toggle="tab"> Info </a></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" [id]="'A' + contadorObjeto.name">Content inside tab A
{{ contadorObjeto.name }}
</div>
<div class="tab-pane fade in " [id]="'B' + contadorObjeto.name">Content inside tab B
<a [attr.href]="'#C' + contadorObjeto.name" data-toggle="tab" #elem (click)="testLocationAct(elem.href, 'IDB' + contadorObjeto.name)" >
<img class="img-responsive"
height = "230" width = "230"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Free_logo.svg/200px-Free_logo.svg.png" />
</a>
</div>
<div class="tab-pane fade in " [id]="'C' + contadorObjeto.name">Content inside tab C
</div>
</div>
</div>
testLocation1():string{
//alert(document.activeElement.toString().split(/#(.+)?/)[1]);
return document.activeElement.toString().split(/#(.+)?/)[1];
}
testLocationAct(test: any, test1: any){
liNavID = "ID" + test.toString().split(/#(.+)?/)[1];
document.getElementById(test1).classList.remove('active');
document.getElementById(liNavID).classList.add('active');
//console.log(liNavID);
}
我已经调整了示例代码,新的代码使它看起来与之前相似。您可以点击选项卡 2 内部的图像进行测试。
希望能帮到你。