Здесь что-то странное, что я уверен, что работал в более ранних мобильных браузерах: в Chrome на Android и Safari на iOS кажется, что событие touchstart запускается после события click, а не раньше. Когда это изменилось?
Простой пример:
jQuery(function($) {
var touched = false;
$('#clicky').on('touchstart', function(evt){
touched = true;
evt.preventDefault();
})
.click(function(){
if (!touched) {
alert("somehow touch didn't fire")
}
});
})
Запустите эту скрипту, и вы увидите, что предупреждение появится на Android и iOS, когда оно на самом деле никогда не появится!