web-dev-qa-db-ja.com

Angular 2:focusinとfocusoutを1つのイベントに含めることはできますか?

focusinfocusoutを1つのイベントに含めることはできますか?それでは何と呼ばれますか?そうでない場合、これを1つの関数にマージする方法はありますか?

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

最初に、tabindex属性をsectionに追加して、フォーカスイベントを取得する必要があります。それ以外の場合、フォーカスイベントは取得されません。

要素がフォーカス可能になると、フォーカスイベントがトリガーされます。要素をクリックするたびに、常にフォーカスが取得され、要素の外側をクリックした場合にのみフォーカスを削除できます。そのため、同じ要素のclickイベントにフォーカスを移すことはできません。

focusfocusoutは両方とも異なるイベントであり、マージできません

*ngIfも使用できます

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

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

コンポーネントのクラス内

casSee: boolean = false;

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

Angular 2/4。で(focus)および(focusout)を使用できます。

6
Deepak swain