Я читал, что мобильное Safari имеет задержку 300 мс для событий щелчка с момента нажатия ссылки / кнопки до момента срабатывания события. Причина задержки заключается в том, чтобы дождаться, чтобы увидеть, собирается ли пользователь дважды щелкнуть мышью, но с точки зрения UX ожидание 300 мс часто нежелательно.
Одним из решений для устранения этой задержки в 300 мс является использование обработки «касанием» jQuery Mobile. К сожалению, я не знаком с этим фреймворком и не хочу загружать какой-то большой фреймворк, если все, что мне нужно, это одна или две строки кода, применяемых touchend
правильным образом.
Как и на многих других сайтах, на моем сайте много таких событий кликов:
$("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();
});
Это плохая / хорошая идея?