I browser mobili simulano gli eventi del mouse per supportare i siti Web che collegano solo gestori ad eventi del mouse. Tuttavia, se si desidera implementare due modelli di interazione, uno per gli eventi del mouse e uno per gli eventi tattili, è utile impedire al browser di simulare gli eventi del mouse.Come evitare eventi simulati del mouse nei browser mobili?
Su iOS Safari questo è abbastanza semplice - basta eseguire preventDefault su touchend:
jQuery(document).on('touchend', function(e) {
// Do some logic
e.preventDefault();
});
che è abbastanza sano di mente. Sfortunatamente, né il browser predefinito di Android né Dolfin annullano la simulazione del mouse utilizzando questa tecnica. (Dolfin cancellerà il mouse quando preventDefault viene eseguito su touchstart - ma non è molto utile, perché non sai quale azione il dito avrà sul touchstart.)
C'è qualche altro modo di condizionale, o anche non condizionato , impedendo agli eventi simulati del mouse di sparare?
[EDIT]
Per cominciare a capire il problema (s) meglio, ho iniziato una tabella di compatibilità eventi touch a: http://labs.cruncher.ch/touch-events-compatibility-table/
Inoltre, i commenti dell'esperienza con Chrome o FF per dispositivi mobili sono stati molto apprezzati. – stephband
È possibile rilevare se si tratta di un browser mobile o meno prima di collegare gli eventi del mouse? –
@JaredFarrish I metodi per il rilevamento del browser mobile non sono mai accurati al 100%. –