モバイル Safari では、リンク/ボタンがクリックされてからイベントが発生するまで、クリック イベントに 300 ミリ秒の遅延があることを読みました。遅延の理由は、ユーザーがダブルクリックするつもりかどうかを確認するのを待つためですが、UX の観点から、300 ミリ秒待機することは多くの場合望ましくありません。
この 300 ミリ秒の遅延を解消する1 つの解決策は、jQuery Mobile の「タップ」処理を使用することです。残念ながら、私はこのフレームワークに慣れていないのでtouchend
、正しい方法で 1 行または 2 行のコードを適用するだけでよい場合は、大きなフレームワークをロードしたくありません。
多くのサイトと同様に、私のサイトには次のような多くのクリック イベントがあります。
$("button.submitBtn").on('click', function (e) {
$.ajaxSubmit({... //ajax form submisssion
});
$("a.ajax").on('click', function (e) {
$.ajax({... //ajax page loading
});
$("button.modal").on('click', function (e) {
//show/hide modal dialog
});
私がやりたいことは、次のような単一のコード スニペットを使用して、これらすべてのクリック イベントで 300 ミリ秒の遅延を取り除くことです。
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
それは悪い/良い考えですか?