Saltar al contenido

Cómo cambiar la clase CSS de un elemento y eliminar todas las demás clases al hacer clic

Solución:

La solución más fácil a su problema es asignar una identificación única a cada elemento incluido junto con el empleo de otra variable para mantener la identificación seleccionada. La lógica para encender my-class La clase CSS ahora se basará en la ID seleccionada.

Tu nueva plantilla HTML:

<div (click)="toggleHighlight(1);" [ngClass]="{'my-class': highlightedDiv === 1}">
  > I'm a div that gets styled on click
</div>

Tu toggleHighlight función:

highlightedDiv: number;

toggleHighlight(newValue: number) {
  if (this.highlightedDiv === newValue) {
    this.highlightedDiv = 0;
  }
  else {
    this.highlightedDiv = newValue;
  }
}

Plnk de trabajo: https://plnkr.co/edit/fNoXWhUhMaUoeMihbGYd?p=preview

Tengo una solución difícil para este problema:

<div (click)="onclick($event);" >
    > I'm a div that gets styled on click
  </div>

aplicación:

class App {
constructor() {
}
onclick(event){
    var l = event.target.parentElement.getElementsByClassName("my-class");
    var count = l.length;
    for(var i=0;i<count;i++){
    l[i].className = "";
}
event.target.className = "my-class";
}
}

Plink: https://plnkr.co/edit/RHqL56GrTiV9olYE1Ars?p=preview

Una solución que me funcionó al mostrar el menú activo es usar el nombre de la variable mecanografiada en la clase como en

`class="{{ text1Class }}"`  

y asigne el nombre de la clase en mecanografiado.

`this.text1Class = "active";` 

o

`this.text1Class = "inactive";`

Necesitas tener una clase de estilo diferente como esta

`.inactive {
 background-color : gray;
 padding : 10px;
}
.active {
  background-color : green;
  padding : 10px;
}`

Asignar el nombre de la clase dentro de la función

`textOneClicked() : void {
this.text1Class = "active"; // set the active class
this.text2Class = this.text3Class = this.text4Class = "inactive"; // reset other classes

} `

Un Plunker que trabaja aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *