привет, я создаю систему рейтинга, у меня есть 5 элементов div. Я хочу, чтобы при нажатии на каждый из них цвет фона элемента становился серым.
Я написал директиву, чтобы они выполняли цвет фона приложения.
но как я могу сделать эту логику, чтобы, когда один элемент щелкнул по другому элементу, у него не было цвета фона .... потому что я хочу, чтобы только что выделенный элемент имел серый фон ...
пожалуйста, помогите спасибо
takeVote(e,event){
this.rating = e;
}
HTML:
<div class="rating_start">
<div class="has_start_con " appVote>
<a (click)="takeVote(5,$event)" >
<div class="t"> prefect</div>
<div class="i"><i class="mdi mdi-emoticon-excited"></i></div>
</a>
</div>
<div class="has_start_con" appVote>
<a (click)="takeVote(4,$event)">
<div class="t">good</div>
<div class="i"><i class="mdi mdi-emoticon-happy"></i></div>
</a>
</div>
<div class="has_start_con" appVote>
<a (click)="takeVote(3,$event)">
<div class="t">normal</div>
<div class="i"><i class="mdi mdi-emoticon-neutral"></i></div>
</a>
</div>
<div class="has_start_con" appVote>
<a (click)="takeVote(2,$event)">
<div class="t">not bad</div>
<div class="i"><i class="mdi mdi-emoticon-sad"></i></div>
</a>
</div>
<div class="has_start_con" appVote>
<a (click)="takeVote(1,$event)">
<div class="t">bad</div>
<div class="i"><i class="mdi mdi-emoticon-dead"></i></div>
</a>
</div>
</div>
моя директива:
@Directive({
selector: '[appVote]'
})
export class VoteDirective {
constructor(public elm: ElementRef, public renderer: Renderer2) {
}
@HostBinding('style.background-color') background: string;
@HostListener('click') onClick() {
//let part = document.getElementsByClassName('has_start_con')
//this.renderer.setStyle(part, 'backgroundColor', 'none');
this.renderer.setStyle(this.elm.nativeElement, 'backgroundColor', '#d2d2d2');
//this.background = 'red'
}
}