У меня есть простой обработчик кликов, который что-то делает на экране вместо того, чтобы посещать эту ссылку. Вот код (я вырезая нонсенс, но важный материал является точным):iPhone против подавления Javascript
<a href="#" id="others">Link Text</a>
<script type="text/javascript" src="./path/to/jquery.js"></script>
<script type="text/javascript">
$('#others').on('click', function(ev){
ev.preventDefault();
ev.stopPropagation();
// Doing stuff (some simple DOM manipulation)
return false;
});
</script>
Это прекрасно работает на собственных браузерах. Он отлично работает на Android (как старый веб-кит, так и новейшие сборки Chrome), и он отлично работает на iOS на iPad 2 ... Но один из моих пользователей использует iPhone 4, и здесь начинается все самое интересное.
Когда они нажимают на ссылку, она загружается. Несмотря на три отдельных триггера не до, событие все еще стреляет. Другой javascript работает на странице, и, как я уже сказал, это работает везде еще. На самом деле, чтобы путать вещи немного больше, событие подавляется очень, очень редко. Менее 1% времени.
Значит, это известная проблема с iPhone? Есть ли лучший способ сделать все это?
Javascript загружается в конец тела (все еще внутри него, но после всех элементов DOM, которые он упоминает). JQuery версия 1.10.1
' 'click'' должно быть'' touch'' события прямо ... – Jai
@Jai Действительно? Есть различие? – Oli
Ну, на самом деле, я никогда не работал для мобильного приложения, но я читал где-то там должны быть события касания для iphones. – Jai