Angular 2:可以将焦点放在一个事件中吗?

时间:2017-06-23 05:27:36

标签: angular events hide show

focusinfocusout可以参加一个活动吗?那叫什么呢? 如果没有,有没有办法在一个函数中合并它?



hide(e:any) {
  $('.suggestion').hide();
}
show(e:any) {
  $('.suggestion').show();
}

<section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:13)

首先,您需要将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;
}

答案 1 :(得分:5)

您可以在Angular 2/4中使用(focus)(focusout)