У меня есть небольшой jsfiddle - http://jsfiddle.net/qhguktsn/5/. Когда вы нажимаете текст вверху ссылки (iOS mobile Safari), вы получаете только события мыши - никаких событий касания вообще, даже на теле. Если вы нажмете его в нижней части текста, вы получите события касания. Мы зависим от событий touch для обработки задержки 300 мс.Сафари не стреляет событиями касания
Как мы можем получить события касания для нажатия на верхнюю часть текста, а также на дно?
HTML:
<div style="margin-left:200px;margin-top:200px">
<a style="vertical-align:center;height: 20px, width: 20px;font-size:100px" href="javascript: void 0">text</a>
</div>
JS:
jQuery("a").on("mousedown", function() { document.body.appendChild(document.createTextNode("mousedown ")); });
jQuery("a").on("mouseup", function() { document.body.appendChild(document.createTextNode("mouseup ")); });
jQuery("a").on("touchstart", function() { document.body.appendChild(document.createTextNode("touchstart ")); });
jQuery("a").on("touchend", function() { document.body.appendChild(document.createTextNode("touchend ")); });
jQuery("a").on("click", function() { document.body.appendChild(document.createTextNode("click ")); });
jQuery(document.body).on("touchstart", function() { document.body.appendChild(document.createTextNode("body touchstart ")); });
jQuery(document.body).on("touchend", function() { document.body.appendChild(document.createTextNode("body touchend ")); });
Я думаю, что я мог бы иметь то же самое на iOS 8.1.2 с Chrome. – PaukkuPalikka
Chrome использует тот же механизм рендеринга, что и Safari на iOS, поэтому поведение должно быть идентичным (как и со всеми другими браузерами, работающими на iOS). – Luckyrat
Я старался выяснить, почему события касания на моей маленькой кнопке не стреляли последовательно, и ваш пост помог мне понять, что это проблема края! События прикосновения не срабатывают, пока вы нажимаете слишком близко к любому краю, включая левый и правый края, но события щелчка по-прежнему срабатывают. –