focusin
和focusout
可以参加一个活动吗?那叫什么呢?
如果没有,有没有办法在一个函数中合并它?
hide(e:any) {
$('.suggestion').hide();
}
show(e:any) {
$('.suggestion').show();
}

<section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)">
&#13;
答案 0 :(得分:13)
首先,您需要将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;
}
答案 1 :(得分:5)
您可以在Angular 2/4中使用(focus)
和(focusout)
。