2017-06-23 165 views
0

可以focusinfocusout在一个事件?那么它叫什么? 如果不是,有没有办法将它合并到一个函数中?角度2:可以聚焦和聚焦在一个事件吗?

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

回答

2

的第一件事是你需要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; 
} 
+0

我认为这是另一个功能的权利。你可以问一个问题,而不是继续这个 –

+0

如果我的猜测是正确的,你有一个搜索框。当你输入你想要显示的建议,并点击一个建议,你想重定向到适当的链接。我对么?如果我是正确的,请在单独的线索中提出明确的问题 –

0

您可以使用(focus)和角度2/4中的(focusout)