繁体   English   中英

在最近点击的元素下划线

[英]Underline most recent clicked element

我正在尝试找到一种方法来跟踪最近单击的项目并仅在该项目下划线。 这是我目前的方法,但是,它强调了我点击的每个项目,但不是最近的项目。 我还尝试在li上使用:active:focus:focus:active ,但下划线没有保留。

在我的 HTML 中:

<li [ngClass]="{ 'target': isTarget }" (click)="updateTarget(t)"> 
  {{ details }} </li>

在我的 CSS 中:

li { 
  &.target {text-decoration: underline; } 
}

在我的角度 2 中:

updateTarget(t) {
   this.isTarget = t;
}

我假设你的目标是一个 json 对象数组。 以下是您的操作方法:

<li [ngClass]="{ 'target': isTarget === t  }" (click)="isTarget = t">
    {{details }} 
</li>

和你的风格:

.target {
    text-decoration: underline;
}

Plunker 演示中包含示例的完整代码

在您的组件中,有一个数组,其中的每个成员将对应于视图中的一个<li>

public target = null; // reference to the most recently clicked link
public links = [
  {details: '...'},
  {details: '...'},    
];

然后在您的视图中,使用*ngFor遍历links

<li *ngFor="let link of links" [ngClass]="{'target': link===target }" 
    (click)="target = link">
    {{link.details}}
</li>

当用户点击一个链接时,Angular 会将底层对象设置为当前目标,并且ngClass指令将添加“ target ”类,因为link===target仅对点击的链接为真。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM