0
votes

Ajouter 'Cochez' Classe à l'élément précédent après avoir cliqué sur un bouton

J'essaie d'ajouter une classe déverrouillée forte> sur article précédent fort> lorsque je clique sur le bouton et mon actuel fort> passe à l'élément suivant, mais je ne peut pas comprendre comment. La fonctionnalité actuelle fonctionne bien mais je souhaite ajouter une classe déverrouillée. Toute aide serait géniale.

<ul>
        <li class="locked" *ngFor="let subLecture of lectureList; let j = index"
            [ngClass]="{ 'current': lectureIndex == j}"
            (click)="lectureItemClick(j)">
          <a>{{subLecture}}</a>
        </li>
      </ul>
      <button (click)="nextLectureSecond()">Next</button>


0 commentaires

3 Réponses :


0
votes

Bien qu'il ne soit pas recommandé d'utiliser le mot clé code> si vous utilisez le rendu côté serveur, vous pouvez également utiliser une autre solution de contournement également, vous pouvez également suivre le chemin ci-dessous.

<li class="locked" *ngFor="let subLecture of lectureList; let j = index"      [id]="j">
....
</li>

nextLectureSecond() {
    ....
    let ele = document.getElementById(this.lectureIndex.toString());
    (<HTMLParagraphElement>ele).classList.add("unlocked");
    const a = this.lectureIndex++;
    ....
}


0 commentaires

0
votes

Vous pouvez ajouter une autre condition également dans le [ngclass] , quelque chose comme 'non déverrouillé': lectutureindex> j si vous souhaitez appliquer la classe à tous les précédents éléments.

Voir si cela aide: xxx

De même, vous pouvez modifier la logique en fonction de votre scénario.

Stackblitz: https://stackblitz.com/edit/angular-ivy-62422113


4 commentaires

Ceci est assez utile, mais y a-t-il une façon que lorsque je clique sur l'élément de la liste, il ne supprimera pas la classe que nous ajoutons i.e, "déverrouillé"? Cuz il l'enlève quand je clique sur l'un des LI


Bien sûr, heureux d'aider. J'ai modifié le code et l'exemple de Stackblitz. S'il vous plaît accepter la réponse si elle a aidé.


Non non, peut-être que vous avez mal compris. Je veux une classe actuelle sur l'article qui est sélectionné, maintenant, il ne supprime pas aussi le courant, le comportement précédent était correct mais je voulais juste avoir une classe "déverrouillée" enlevé.Hope Vous comprenez maintenant


OK, cela signifie une fois que la conférence est déverrouillée, vous souhaitez conserver la classe déverrouillée appliquée à celle-ci. Pour cela, nous devrions sauver l'état quelque part. J'ai modifié mon stackblitz pour ce scénario. Faites-moi savoir si cela aide.



0
votes

juste l'article précédent? Changez votre déclaration de classe NG comme ceci: [ngclass] = "{'actuel': lectutureindex == j," déverrouillé ": (LectureDex! = 0 && LectureDex - 1 == j)}" SE ici


1 commentaires

Pas seulement la précédente, chaque article que je passe