質問編集履歴

1

追記

2022/04/12 12:23

投稿

cwi
cwi

スコア54

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,14 @@
1
- タッチスクリーン使用時にはtouchstartイベントだけを、マウス使用時にはmousedownイベントだけを使いたいと思います。このようなときtouchstart時にpreventDefaultを使うのが一般的のようですが、デバイスによってはタッチ後に発生するmousedownイベントを抑制できないことが分かりました。
1
+ タッチスクリーン使用時にはtouchstartイベントだけを、マウス使用時にはmousedownイベントだけを使いたいと思います。このようなときtouchstart時にpreventDefaultを使うのが一般的のようですが、デバイス(端末の意。4/12追記)によってはタッチ後に発生するmousedownイベントを抑制できないことが分かりました。
2
2
 
3
3
  mousedownイベントが発生してもそれがタッチによるものであれば以降の処理は行わないようにしたいのですが、タッチ時のものか見分ける方法にはどのようなものがありますか。
4
4
 
5
5
  尚、備える入力デバイスのどれかが使えないのは望ましくなく、touchstartとmousedownの排他利用は極力避けなければなりません。(最悪の事態を想定しユーザーがどちらかを無効にできる造りにはします)
6
6
 
7
7
  buttonsプロパティを見るのは一つの答えのようですが、多くの環境に対応させたいと思いますので使えそうな手段を教えていただけるなら多ければ多いほど有難いと存じます。
8
+
9
+ 4/12追記
10
+ preventDefaultが効かないある端末にて、buttonsの動作が確認できた。タッチ時にマウス左ボタンと同じ1が返ることが判明。
11
+
8
12
 
9
13
  ```html
10
14
  <!DOCTYPE html>