2016-09-11 7 views
3

簡単な問題がありますが、解決策を見つけることができません。ぼかし機能の前にクリック機能を実行する方法

基本的には、フォーカスを合わせたときにドロップダウンを切り替える入力があります。フォーカスがもうない場合は、ドロップダウンを閉じる必要があります。

しかし、問題はあなたがドロップダウンに項目をクリックすると、blur機能がクリックされる前に、ドロップダウンが閉じているのでまったく実行しないclick機能を引き起こし、アイテムのclick関数の前に実行されていることです登録された

どうすればこの問題を解決できますか?

<input (focus)="showDropdown()" (blur)="myBlurFunc()"> 
<ul> 
    <li *ngFor="let item of dropdown" (click)="myClickFunc()">{{item.label}}</li> 
</ul> 

答えて

5

マウスダウン)とあなたのクリックイベントを交換してください。がぼやけてしまう前に、Mousedownのイベントはと呼ばれています。このコードは正常に動作する必要があります

<input (focus)="showDropdown()" (blur)="myBlurFunc()"> 
<ul> 
    <li *ngFor="let item of dropdown" (mousedown)="myClickFunc()">{{item.label}}</li> 
</ul> 

それが最初のぼかしイベントが発生していることpredictible動作ですので、クリックイベントは、ぼかしより低い優先順位を持っているように見えます。

+0

これに関する文書はありますか? – Chrillewoodz

+0

私はまだ何も見つかりませんでした。 –

+0

これはしばらくの間、私の問題でした。答えをありがとう。 –

関連する問題