【发布时间】:2019-05-09 17:30:09
【问题描述】:
图像列表在循环中执行(ngFor)。我正在尝试通过调用函数 (click)="addStyle()" 来获取正在单击的当前元素。我在这里面临的问题是,如果我根据单击的方法添加样式 [class.active] ,它会反映在所有图像标签中。但我试图只为被点击的特定图像添加样式。
component.html
<div class="item" *ngFor="let i of img;let i = index">
<img class="product-i-2" [src]="i" [class.active]="isActive" (click)="addStyle()">
</div>
component.ts
isActive:false;
addStyle()
{
this.isActive=true;
}
component.css
.active
{
border:1px solid red;
}
简而言之,我正在尝试为特定图像标签添加样式,而不是循环中的所有图像
【问题讨论】:
-
(click)="addStyle(i)"将 i 添加到 addStyle,class.active应为img.active。将let i = index重命名为let _i = index以避免与已经声明的变量i发生冲突。更改addStyle以将i.isActive设置为!i.isActive。 -
感谢您的帮助..但我仍在尝试仅向被单击的特定元素添加样式
-
这样就可以了。您只需要禁用其他元素的样式。
标签: javascript jquery css angular