モバイルブラウザは、マウスイベントをシミュレートして、ハンドラーのみをマウスイベントに接続するWebサイトをサポートします。ただし、マウスイベント用とタッチイベント用の2つのインタラクションモデルを実装する場合は、ブラウザがマウスイベントをシミュレートするのを防ぐのが便利です。 iOSのSafariでモバイルブラウザでマウスイベントをシミュレートするのを防ぐにはどうすればよいですか?
が、これはかなり簡単です - 単にtouchend上でpreventDefaultを実行します。かなりまともだ
jQuery(document).on('touchend', function(e) {
// Do some logic
e.preventDefault();
});
。残念なことに、AndroidのデフォルトブラウザもDolfinも、この手法を使用してマウスシミュレーションをキャンセルすることはありません。 (DolfinはtouchstartでpreventDefaultが実行されたときにmousedownをキャンセルしますが、これはあまり役に立ちません。
条件付きでも、条件付きでもない方法がありますかシミュレートされたマウスイベントが発射されるのを防ぎますか?
[EDIT]
問題(複数可)をよりよく理解するために開始するために、私がタッチイベントの適合表を開始しました:http://labs.cruncher.ch/touch-events-compatibility-table/
また、モバイルChromeやFFでの経験からのコメントも高く評価されています。 – stephband
マウスイベントを接続する前に、モバイルブラウザであるかどうかを検出できますか? –
@ JaredFarrishモバイルブラウザの検出方法は決して100%正確ではありません。 –