Вот что-то странное, что я уверен, что работал в более ранних мобильных браузерах: в Chrome на Android и Safari на iOS кажется, что событие touchstart увольняется после события click, а не раньше. Когда это изменилось?Почему событие touchstart после нажатия?
Простой пример:
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, когда он должен на самом деле никогда не показывать!
http://jsfiddle.net/quxnxu7d/2/
В сенсорной эмуляции в Firefox (инструменты dev → мобильный вид → эмулировать события касания) он работает так, как ожидалось. – Xufox
@Xufox Так это еще-еще-webkit-ошибка? Я не удивлюсь ... – NoBugs
Не так уверен в этом ... Я не тестировал его на Firefox для Android или на Firefox OS и т. Д. – Xufox