Ho letto che Safari mobile ha un ritardo di 300 ms sugli eventi di clic dal momento in cui si fa clic sul collegamento / pulsante al momento in cui si attiva l'evento. Il motivo del ritardo è aspettare per vedere se l'utente intende fare doppio clic, ma dal punto di vista dell'esperienza utente attendere 300 ms è spesso indesiderabile.
Una soluzione per eliminare questo ritardo di 300 ms è utilizzare la gestione "tap" di jQuery Mobile. Sfortunatamente non ho familiarità con questo framework e non voglio caricare un framework di grandi dimensioni se tutto ciò di cui ho bisogno è una o due righe di codice che si applicano touchend
nel modo giusto.
Come molti siti, il mio sito ha molti eventi di clic come questo:
$("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 quello che vorrei fare è eliminare il ritardo di 300 ms su TUTTI quegli eventi di clic utilizzando un singolo frammento di codice come questo:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
È un'idea cattiva / buona?