Eu li que o Safari para celular tem um atraso de 300 ms em eventos de clique desde o momento em que o link / botão é clicado até o momento em que o evento é disparado. O motivo do atraso é esperar para ver se o usuário pretende clicar duas vezes, mas de uma perspectiva de UX, esperar 300 ms geralmente é indesejável.
Uma solução para eliminar esse atraso de 300 ms é usar o manuseio de "tap" do jQuery Mobile. Infelizmente, não estou familiarizado com esta estrutura e não quero carregar uma estrutura grande se tudo que eu preciso é uma linha ou duas de código aplicado touchend
da maneira certa.
Como muitos sites, meu site tem muitos eventos de clique como este:
$("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
});
e o que eu gostaria de fazer é me livrar do atraso de 300 ms em TODOS os eventos de clique usando um único snippet de código como este:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
Isso é uma ideia boa / ruim?