webentwicklung-frage-antwort-db.com.de

Angular 2: Kann Focusin und Focusout in einem Event sein?

Können focusin und focusout in einem Ereignis sein? Wie heißt es dann? Wenn nicht, gibt es eine Möglichkeit, dies in einer Funktion zusammenzuführen?

hide(e:any) {
  $('.suggestion').hide();
}
show(e:any) {
  $('.suggestion').show();
}
<section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)">
8
Char

Als Erstes müssen Sie tabindex zu section hinzufügen, damit das Fokusereignis abgerufen werden kann. Andernfalls wird das Fokusereignis nicht erhalten.

Fokusereignis wird ausgelöst, wenn ein Element fokussierbar ist. Jedes Mal, wenn Sie auf das Element klicken, wird es immer fokussiert und wir können den Fokus nur beim Klicken außerhalb des Elements entfernen. Daher können wir den Fokus nicht auf das click -Ereignis desselben Elements entfernen.

focus und focusout sind unterschiedliche Ereignisse, die wir nicht zusammenführen können

Sie können *ngIf ebenfalls

<section class="search-bar-wrapper" tabindex="-1" (focus)="show($event)" (focusout)="hide($event)">

<div class="suggestion" *ngIf="canSee">This is a suggestion</div>

in der Klasse der Komponente

casSee: boolean = false;

show(e: any) {
   this.canSee = true;
}
hide(e: any) {
   this.canSee = false;
}
16
Mr_Perfect

Sie können (focus) und (focusout) in Angular 2/4.

6
Deepak swain