モバイルサイトのフォームに一連の選択要素があります。これらの選択要素は、JSおよびCSS3変換を介して処理されるスクロールペイン内にあるため、タッチ/クリック/その他のイベントを選択に登録することは、そもそも十分な苦痛でした。しかし、私は今、Androidでのみ、選択がクリックされてフォーカスを取得しているにもかかわらず、単に開くことを拒否していることに気づいています。セレクトが(デバッグを通じて)フォーカスイベントを取得していることを100%確信しているので、正直なところ、私は完全に困惑しています。デバッグがない場合、選択に他のフォーカス/ブラーイベントはありません。iPhoneでも問題なく動作します...何かアイデアはありますか?
2 に答える
私はこの同じ問題で頭を壁にぶつけてきました。Android 2.1/2.2 (そしておそらく 2.0?) に分離されているようです。選択は Android 1.5/1.6 で正常に動作します。選択の表示スタイルをなしからブロックに変更するだけの簡単なページを作成しても、選択は一貫して開かれません。奇妙なことに、ページを更新した後に機能する場合があり、別の更新後に再び壊れることがあります。あなたが述べたように、要素からフォーカスおよびクリック/タッチイベントが発生するため、問題が何であるかについて途方に暮れています。
ページをズームすると、select を開くことができますが、それでも選択した値がページの select 要素に表示されません。
Android 開発チームにバグ レポートを提出しましたが、将来のビルドで修正されたとしても、2.1/2.2 にはまだ問題が存在します。
誰もこれに対する回避策をまだ見つけていませんか?
//---- 更新 ------
webkit-transition を使用して要素を表示/非表示にする場合、次のイベントを要素にアタッチすると、要素内の選択が修正されます。
.addEventListener("webkitTransitionEnd",function(e){ this.innerHTML = this.innerHTML; }、間違い);
なぜこれが機能するのかは完全にはわかりませんが、要素を DOM に書き直すと何らかの理由で役立つようです。Android 2.1/2.2 シミュレーター、EVO4G、および MyTouch でテスト済み。
a.meservyによるこの回答で解決策を見つけました。これが答えです。みんなの便宜のためにコピーされています。
この場合、問題は実際には jQTouch によって引き起こされました。これを修正するには、jqtouch.css のこれらの 4 行をコメントアウトするだけです
「本体」の下
/*-webkit-perspective: 800;*/
/*-webkit-transform-style: preserve-3d;*/
「本文 > *」の下
/*-webkit-backface-visibility: hidden;*/
/*-webkit-transform: translate3d(0,0,0) rotate(0) scale(1);*/