Czytałem, że mobilna Safari ma 300 ms opóźnienia w przypadku kliknięć od momentu kliknięcia łącza / przycisku do momentu uruchomienia zdarzenia. Powodem opóźnienia jest oczekiwanie, aby zobaczyć, czy użytkownik zamierza dwukrotnie kliknąć, ale z perspektywy UX czekanie 300 ms jest często niepożądane.
Jednym z rozwiązań pozwalających wyeliminować to 300 ms opóźnienia jest użycie obsługi „dotknięcia” w jQuery Mobile. Niestety nie jestem zaznajomiony z tym frameworkiem i nie chcę ładować jakiegoś dużego frameworka, jeśli potrzebuję tylko jednego lub dwóch wierszy kodu zastosowanych touchend
we właściwy sposób.
Podobnie jak wiele innych witryn, moja witryna ma wiele takich zdarzeń kliknięcia:
$("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
});
Chciałbym pozbyć się 300 ms opóźnienia WSZYSTKICH tych zdarzeń kliknięcia za pomocą pojedynczego fragmentu kodu, takiego jak ten:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
Czy to zły / dobry pomysł?