He leído que Safari móvil tiene un retraso de 300 ms en los eventos de clic desde el momento en que se hace clic en el enlace / botón hasta que se activa el evento. La razón del retraso es esperar para ver si el usuario tiene la intención de hacer doble clic, pero desde una perspectiva de UX, esperar 300ms a menudo no es deseable.
Una solución para eliminar este retraso de 300 ms es utilizar el manejo de "tap" de jQuery Mobile. Desafortunadamente, no estoy familiarizado con este marco y no quiero cargar un marco grande si todo lo que necesito es una línea o dos de código que se aplique touchend
de la manera correcta.
Como muchos sitios, mi sitio tiene muchos eventos de clic 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
});
y lo que me gustaría hacer es deshacerme del retraso de 300ms en TODOS esos eventos de clic usando un solo fragmento de código como este:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
¿Es una mala / buena idea?