J'ai lu que Safari mobile a un délai de 300 ms sur les événements de clic entre le moment où le lien / bouton est cliqué et le moment où l'événement se déclenche. La raison du retard est d'attendre de voir si l'utilisateur a l'intention de double-cliquer, mais du point de vue UX, attendre 300 ms est souvent indésirable.
Une solution pour éliminer ce délai de 300 ms consiste à utiliser la gestion «tap» de jQuery Mobile. Malheureusement, je ne suis pas familier avec ce framework et je ne veux pas charger un gros framework si tout ce dont j'ai besoin est une ligne ou deux de code s'appliquant touchend
de la bonne manière.
Comme de nombreux sites, mon site comporte de nombreux événements de clic comme celui-ci:
$("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
});
et ce que j'aimerais faire, c'est supprimer le délai de 300 ms sur TOUS ces événements de clic en utilisant un seul extrait de code comme celui-ci:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
Est-ce une mauvaise / bonne idée?