У меня есть серия элементов в форме на мобильном сайте. Эти элементы выбора находятся внутри области прокрутки, обрабатываемой с помощью преобразований JS и CSS3, поэтому получение контакта/клика/любого события для регистрации на выборках было достаточным для боли в первую очередь. Тем не менее, я сейчас нахожусь только на андроиде, что, несмотря на то, что выбираются клики, и они получают фокус, они просто отказываются открывать. Я на 100% уверен, что избранные получают свое фокусное событие (через отладочную), так что честно, я полностью в тупике. Без отладки нет других событий фокуса/размытия на выборках. Он отлично работает на iPhone ... любые идеи?ANDROID WEBKIT: выберите элементы, получающие фокусные события, но не открывающиеся!
ответ
Я уже стучал головой о стену с этой же проблемой. Он, кажется, изолирован от Android 2.1/2.2 (и, возможно, 2.0?). Выбор работает отлично в Android 1.5/1.6. Я даже создал простую страницу, которая просто изменяет стиль отображения select от none до block, и выбор по-прежнему не открывается последовательно. Как ни странно, иногда после обновления страницы он может работать, а затем после другого обновления может быть снова сломан. Как вы заявили, фокус и щелчок/прикосновение к событиям срабатывают от элемента, поэтому я не понимаю, что это за проблема.
Иногда, если я увеличиваю масштаб страницы, я могу открыть выбор, но даже тогда выбранное значение не отображается в элементе выбора на странице.
Я отправил bug report в команду разработчиков Android, но даже если он будет исправлен в будущем, проблема все равно будет существовать в 2.1/2.2.
Кому-нибудь найти обходное решение для этого?
// ---- Обновление ------
Если вы используете WebKit-переход, чтобы показать/скрыть элемент, прикрепляя следующее событие на элемент появляется, чтобы зафиксировать выбор внутри из него:
.addEventListener("webkitTransitionEnd",function(e){ this.innerHTML = this.innerHTML; },false);
Я не совсем уверен, почему это работает, но переписывание элемент в DOM, кажется, помогает по какой-то причине. Протестировано в симуляторе Android 2.1/2.2, EVO4G и MyTouch.
Я нашел решение в this answer от a.meservy. Вот ответ, скопированный для удобства каждого.
В этом случае проблема была вызвана jQTouch. Чтобы исправить это, просто закомментируйте эти 4 строки в jqtouch.css
Под "телом"
/*-webkit-perspective: 800;*/
/*-webkit-transform-style: preserve-3d;*/
Под "телом> *"
/*-webkit-backface-visibility: hidden;*/
/*-webkit-transform: translate3d(0,0,0) rotate(0) scale(1);*/
У меня есть эта проблема. Я попробовал ваше решение на своем телефоне Droid 2 под управлением Android 2.2, и это не сработало. –