私のアプリケーションはTouch APIを使用して、JavaScriptのタッチイベントを検出しています。例:
$(".element").on("touchstart", function(event){
alert("TRUE");
});
これは、AndroidまたはiOSのような任意のブラウザーを備えた任意のタッチデバイスで機能しますが、接続されたキーボードの有無にかかわらず、Windows 10タブレットのMS Edgeでは機能しません。APIはサポートされているようです: 互換性リスト 。ただし、私はテストしました:'ontouchstart' in window
このデバイスではfalseを返します。さらにmousedown
は解雇されたようです。
ここで何が起こっているのですか? Windows 10タブレットでタッチイベントを発生させるにはどうすればよいですか?タッチデバイスだけのイベントを続けたいです。ポインターイベントAPIへの切り替えには、デスクトップデバイスも含まれますが、それは私が望んでいることではありません。
タッチAPIの場合は、Edgeでフラグをアクティブにする必要があります。アドレスバーにabout:flagsと入力し、Enterキーを押します。タッチセクションでは、対応するドロップダウンでタッチイベントを有効にすることができます
カスタムタッチ処理を有効にしましたか?これは次のcssスニペット(bodyタグまたはgesturesのコンテナーのみ)で実行できます。
-ms-touch-action: none;
次に、タッチAPIはWebkitの機能です(CanIuseにエラーがある可能性があります)。 IEおよびEdgeには、Pointer APIと呼ばれる同様の機能があります。ただし、次のようなポリフィルライブラリを使用できます: https://github.com/CamHenlin/TouchPolyfill
pointerdown
イベントを使用してみてください。いくつかの(もっと) 情報 。ご覧のとおり、touchstart
はEdgeによってトリガーされますが、キーボードが接続またはペアリングされていない場合、touchstart
などのすべての構成ではトリガーされません。