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