Comments 19
Используйте не onClick а onTouch.
Также замечал странные тормоза со ссылками, появлялись при использовании каких-то конкретных стилей, что-то вроде цвета или цвета бекграунда, я тогда так до конца и не разобрался.
Также замечал странные тормоза со ссылками, появлялись при использовании каких-то конкретных стилей, что-то вроде цвета или цвета бекграунда, я тогда так до конца и не разобрался.
0
Как было сказано выше, вместо события click используйте событие touchend.
Естественно, надо проверять в touchend, не было ли между touchstart и touchend события touchmove, чтобы не возникло ситуации, когда скроллинг контента будет расцениваться как нажатие.
Естественно, надо проверять в touchend, не было ли между touchstart и touchend события touchmove, чтобы не возникло ситуации, когда скроллинг контента будет расцениваться как нажатие.
0
А чтобы не заморачиваться на отлавливание touchmove между touchstart и touchend советую использовать какой-нибудь мобильно-ориентированный минималистичный фреймворк, например, Zepto (в нем есть 'tap', 'swipe' и т.п.).
0
В чём заморочки-то? Лишь добавляем хранение флага и его сброс и взведение в нужных местах. Делов — на три строчки кода. И зачем здесь цеплять какие-то фреймворки? Мобильный webview не очень-то радуется, когда его обвешивают кучей ненужных скриптов.
0
Ладно-ладно (: А почему «мобильный webview не очень-то радуется, когда его обвешивают кучей ненужных скриптов».
0
Причина проста — шибко медленно он их прожёвывает.
0
А вы, случайно, не в курсе, PhoneGap в итоге формирует приложение с веб-вью или же там все сложнее? А то все руки не доходят посмотреть.
0
WebView + JS + JavaScript Bridge, через который вызывается Java код посредством JS.
0
Не фонтан, в общем.
0
Беда в том, что Titanium на который я стало было начал смотреть судя по отзывам не лучше. Если кратко, то кроссплатформенная разработка с помощью него чего-то сложнее примеров это миф, каждый раз приходится пилить под конкретную платформу, потому что все работает как хочет. А полного контроля нет, так что только костыли.
Может тут есть разработчики, которые его тыкали? Правда все так плохо?
Может тут есть разработчики, которые его тыкали? Правда все так плохо?
0
Знаете я столкнулся с тем, что тот же jquery mobile вроде как предоставляет данный функционал.
Беда только в том, что когда меняется страница, на ней загадочным образом тоже срабатывает это событие.
Ну или кликаешь кнопку вызвать попап, и в попапе тоже ловится это событие.
В результате пришлось в кнопках, ведущих к смене или изменению интерфейса возвращать клик обратно,
либо кнопки ставить так, что бы на следующей вьюхе под кликом ничего не было. Так что осторожней.
Беда только в том, что когда меняется страница, на ней загадочным образом тоже срабатывает это событие.
Ну или кликаешь кнопку вызвать попап, и в попапе тоже ловится это событие.
В результате пришлось в кнопках, ведущих к смене или изменению интерфейса возвращать клик обратно,
либо кнопки ставить так, что бы на следующей вьюхе под кликом ничего не было. Так что осторожней.
0
Событие всплывает от наследника по всем родителям (и наоборот), а тут оно ловится, скажем так братом, этого элемента. Самый простой пример это у меня есть три страницы, который по смыслу идут так первая->вторая->тертья. У каждой в левом верхнем углу кнопка назад.
При использование jquery mobile, это будут div.ui-page которые вставляются в body. Т.е они не вложены друг в друга, и вообще вставляются только в момент появления, а не заранее.
Так вот, если я перешел первая-вторая-третья страница, а на последней нажал кнопку назад, то на второй она тоже срабатывает и я оказываюсь на первой.
Вероятная причина это то, что страница успела сменится и тут срабатывает запоздалый клик, но почему так происходит непонятно.
Тоже самое если делеать интерфейс просмотра картинок, когда плашки сами убираются, а далее при тапе по картинке появляюся снова. Если тапнуть вместе где на плашке, когда она появится, будет кнопка, то кнопка тоже сработает.
При использование jquery mobile, это будут div.ui-page которые вставляются в body. Т.е они не вложены друг в друга, и вообще вставляются только в момент появления, а не заранее.
Так вот, если я перешел первая-вторая-третья страница, а на последней нажал кнопку назад, то на второй она тоже срабатывает и я оказываюсь на первой.
Вероятная причина это то, что страница успела сменится и тут срабатывает запоздалый клик, но почему так происходит непонятно.
Тоже самое если делеать интерфейс просмотра картинок, когда плашки сами убираются, а далее при тапе по картинке появляюся снова. Если тапнуть вместе где на плашке, когда она появится, будет кнопка, то кнопка тоже сработает.
0
Посты = Q&A?
+6
Подобная проблема есть и под iOS, только решение с помощью JavaScript. Remove onClick delay on Webkit for iPhone
+2
Sign up to leave a comment.
Как ускорить реакцию на нажатие ссылок в WebView под Android