focusin
とfocusout
を1つのイベントに含めることはできますか?それでは何と呼ばれますか?そうでない場合、これを1つの関数にマージする方法はありますか?
_hide(e:any) {
$('.suggestion').hide();
}
show(e:any) {
$('.suggestion').show();
}
_
<section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)">
最初に、tabindex
属性をsection
に追加して、フォーカスイベントを取得する必要があります。それ以外の場合、フォーカスイベントは取得されません。
要素がフォーカス可能になると、フォーカスイベントがトリガーされます。要素をクリックするたびに、常にフォーカスが取得され、要素の外側をクリックした場合にのみフォーカスを削除できます。そのため、同じ要素のclick
イベントにフォーカスを移すことはできません。
focus
とfocusout
は両方とも異なるイベントであり、マージできません
*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;
}
Angular 2/4。で(focus)
および(focusout)
を使用できます。