をクリックイベントを防ぐ:は、私は、次のangular2テンプレートが長押しで
<div (click)="foo()">
<img (longPress)="bar(1)" (click)="foobar(1)" />
<img (longPress)="bar(2)" (click)="foobar(2)"/>
</div>
Longpressは、あなたが500ミリ秒のためのマウスダウンを持っていたときにトリガーするカスタム属性ディレクティブです。
クリックイベントは、<div>
および<img>
で処理されます。画像上に長押しをすると、bar()関数が呼び出されます。ただし、mouseUp(長押し後)では、クリックイベントは<img>
および親<div>
でトリガーされます。
これらのクリックイベントを最も簡単な方法で防止するにはどうすればよいですか。
ここで私が考えることのできるのは、500ミリ秒未満の「クリック」だけをトリガーするカスタム属性指示文を書くことです。これはちょうど私の上に少し上のようです。
私はそのような構造のものだと思いましたが、それは私が呼び出される関数を変更する必要が意味するであろう。私はむしろ、属性ディレクティブ自体の解決策を持っているので、機能するために渡された関数の特定のフォーマットは必要ありません。 さらに、longpressはmousedownイベントを返します。 mousedownを停止するとクリックが誘発されないようにするかどうかは分かりません。 – JasperZelf