focusin
和focusout
可以合成一个事件吗?如果不行,有没有一种方法将它们合并到一个函数中?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;
}
(focus)
和(focusout)
。