2010-08-12 3 views
5

У меня есть серия элементов в форме на мобильном сайте. Эти элементы выбора находятся внутри области прокрутки, обрабатываемой с помощью преобразований JS и CSS3, поэтому получение контакта/клика/любого события для регистрации на выборках было достаточным для боли в первую очередь. Тем не менее, я сейчас нахожусь только на андроиде, что, несмотря на то, что выбираются клики, и они получают фокус, они просто отказываются открывать. Я на 100% уверен, что избранные получают свое фокусное событие (через отладочную), так что честно, я полностью в тупике. Без отладки нет других событий фокуса/размытия на выборках. Он отлично работает на iPhone ... любые идеи?ANDROID WEBKIT: выберите элементы, получающие фокусные события, но не открывающиеся!

ответ

2

Я уже стучал головой о стену с этой же проблемой. Он, кажется, изолирован от 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.

+0

У меня есть эта проблема. Я попробовал ваше решение на своем телефоне Droid 2 под управлением Android 2.2, и это не сработало. –

0

Я нашел решение в 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);*/