オブジェクトのCLICK
とイベントの両方をリッスンしているシナリオがあります。MouseDown
MouseDown でstartDrag()
. Click では、別のことを実行します。
しかし、問題は、MouseDown イベントが最初に発生し、ドラッグが開始されることです。クリック イベントは発生しません。この問題を解決するにはどうすればよいですか?
オブジェクトのCLICK
とイベントの両方をリッスンしているシナリオがあります。MouseDown
MouseDown でstartDrag()
. Click では、別のことを実行します。
しかし、問題は、MouseDown イベントが最初に発生し、ドラッグが開始されることです。クリック イベントは発生しません。この問題を解決するにはどうすればよいですか?
MouseDown イベントをリッスンし、発生時に MouseMove および MouseUp イベントをサブスクライブし、MouseDown のカーソルの座標を記憶することができます。次に、ドラッグ開始の兆候となるデルタ (たとえば 1px) を決定します。そのため、MouseMove が呼び出された場合は、現在のマウスの位置を確認し、ユーザーが実際にドラッグしているかどうかを判断します (デルタを使用)。この場合、 を呼び出しstartDrag()
ます。それ以外の場合は Click イベントが呼び出されます。
そして、退会イベントを覚えておいてください!:)