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