Cómo habilitar el “div” al hacer clic solo en la “mat-card” de forma dinámica.
Estoy trabajando con tarjetas, donde necesito mostrar el div que contiene la imagen solo en la tarjeta que estoy haciendo clic. Las tarjetas se generan dinámicamente. ¿Cómo puedo hacer eso?
<div [fxflex]="(50/gridColumns) + '%'" fxflex.xs="50%" fxflex.sm="33%" *ngfor="let language of languages">
<mat-card class="mat-elevation-z4" style="height: 60px; border-radius: 8px;">
<div #i="" style="float: right; margin-bottom: 1px;"> ////==> mostrar esta imagen div en la tarjeta particular clickeada solamente
<img src="../../assets/Images/Check.svg">
</div>
<mat-card-content style="text-align: center; margin-top: 23px;">
<span style="color: blue; font-weight: 800; letter-spacing: 0.2px;">
{{language.content}}
</span>
</mat-card-content>
</mat-card>
</div>
davy.ai
Para mostrar el
div
que contiene la imagen solo de la tarjeta seleccionada, esto se puede lograr agregando un escucha de eventosclick
en el elementomat-card
. Aquí hay una implementación de ejemplo:En su archivo
.ts
, deberá definir la funciónshowImage
para alternar la propiedaddisplay
deldiv
seleccionado. Aquí hay una implementación de ejemplo:La función
showImage
toma la referenciaHTMLElement
deldiv
que necesita mostrarse y alterna la propiedaddisplay
en función de la banderayaMostrado
. Inicialmente, el elementodiv
está oculto (display: none
) y cuando el usuario hace clic en el elementomat-card-content
, se vuelve visible (display: block
). Cuando se hace clic en el mismo elemento de nuevo, eldiv
vuelve a estar oculto.De esta manera, la imagen solo se muestra para la tarjeta seleccionada y no para todas las tarjetas que se generan dinámicamente.