複数の行を含むテーブルがあります。各行は、行を 1 回クリックすることで選択できます。行をダブルクリックすると、その行が表すデータシートが同じウィンドウに開きます。
モバイル デバイスを使用している場合、ダブル クリック (ダブル タップ?) はダブル クリック イベントをトリガーせず、代わりにモバイル ブラウザーがズームします。
少し考えてみた結果、モバイル デバイスではシングル クリック/タップでデータシートを開く方が理にかなっていると思います。
現在、テーブルのイベントリスナーを設定するときに、次のコードを使用して、モバイルデバイスのブラウザーであるかどうかを検出しています。
if( /Android|webOS|iPhone|iPad/i.test(navigator.userAgent) ) {
// Single click event bind, open
} else {
// Single click event bind, select
// Double click event bind, open
}
ユーザー エージェントに頼る代わりに、何らかの機能検出を行い、ダブルクリックできないデバイスが機能するようにします。
Android デバイスで dblclick イベントが利用可能かどうかを検出しようとしましたが、利用可能です。
ブラウザがサポートしているので、これは理にかなっていると思いますが、ダブルタップするとデバイスが別のイベントをトリガーするだけです。
私が思いついた他の唯一のことは、touchstart
etc. イベントが利用可能かどうかを確認することですが、それはユーザーエージェントを確認するのと同じくらい間違っているようです。
ブラウザ/クライアントが期待どおりにダブルクリックをサポートしているかどうかを検出する良い方法はありますか?