我有一个如下的无序列表。我想从先前激活的li元素中删除active
和arrow-down
类(以防我单击任何其他li
元素)并想向其添加向上箭头类。此外,我想将active
和arrow-down
类添加到最近单击的li
元素中。在以下代码中,link 1
默认是激活的。
<ul class="sibe-bar-menu">
<li class="active arrow-down"><a href="#">1</a></li>
<li class="arrow-up"><a href="#">2</a></li>
<li class="arrow-up"><a href="#">3</a></li>
<li class="arrow-up"><a href="#">4</a></li>
</ul>
在单击第三个li
元素之后,我想一次获得如下所示的代码。
<ul class="sibe-bar-menu">
<li class="arrow-up"><a href="#">1</a></li>
<li class="arrow-up"><a href="#">2</a></li>
<li class="active arrow-down"><a href="#">3</a></li>
<li class="arrow-up"><a href="#">4</a></li>
</ul>
答案 0 :(得分:1)
为此,您可以将ngClass
与clicked
结合使用。
在HTML中,向其中每个添加一个click
函数以将其选中。另外,如果选择了ngClass
,则显示一个相关的类。
<ul class="sibe-bar-menu">
<li [ngClass]="clicked === 0 ? 'active arrow-down' : 'arrow-up'" (click)="select(0)"><a href="#">1</a></li>
<li [ngClass]="clicked === 1 ? 'active arrow-down' : 'arrow-up'" (click)="select(1)"><a href="#">2</a></li>
<li [ngClass]="clicked === 2 ? 'active arrow-down' : 'arrow-up'" (click)="select(2)"><a href="#">3</a></li>
<li [ngClass]="clicked === 3 ? 'active arrow-down' : 'arrow-up'" (click)="select(3)"><a href="#">4</a></li>
</ul>
最后,在后端创建select
函数
clicked = 0;
select(i) {
this.clicked = i;
}