質問: クリックの反応に関して教えて下さい。 以下の方法で処理を発火させてます。 $('.要素').on('click',function() { console.log('クリック'); } $('.要素').on('touchend',function() { console.log('タップ'); } クロームのデベロッパーツールで検証していますが、 ●スマホのタップの場合、要素を押してから、指が動いて要素から外れた時にも指が離れた時点で反応するんですが、 ●マウスクリックの場合、要素をクリックしたままマウス座標が要素外に出てしまった場合、クリックを解除した場合に反応しません。 この両者を統一したいのですが、どのようにしたらよいでしょうか。 何方も要素をクリックしたら、その後要素外に座標が移動しても目的の処理を発現させたいのですが、 PCでの挙動が不安定なため、色々探っていたところ、どうも、このマウスオフの座標が影響しているのだろうという感じでした。 解る方、宜しくお願い致します。
回答: >マウスクリックの場合、要素をクリックしたままマウス座標が要素外に >出てしまった場合、クリックを解除した場合に反応しません。 正常な動作ですね 「クリック」は対象にカーソルがある状態でのマウスダウン+マウスアップですので要素外でマウスアップしたときには発生しません なので誤ってマウスダウンしたときにカーソルを移動させて難を逃れることも多いですww どうしても対象にしたければ ・マウスダウンで処理する もしくは ・マウスダウンで対象要素を記録しマウスアップがどこで発生しても記録した要素のクリックとみなして処理する という面倒くさい処理しかないと思います そこまでやると「マウスのインタフェイス」じゃなくなってしまいますけどね(カーソルを外してマウスアップすればキャンセルになると信じて操作するけど裏切られる)