我在移动网站的表单中有一系列选择元素。这些选择元素位于通过 JS 和 CSS3 转换处理的滚动 Pane 内,因此首先要在选择上注册触摸/单击/任何事件就足够了。但是,我现在发现,仅在 android 上,即使选择被点击并获得焦点 - 他们只是拒绝打开。我 100% 确定选择正在获得他们的焦点事件(通过调试),所以老实说,我完全被难住了。没有调试,选择上没有其他焦点/模糊事件。它在 iPhone 上运行良好......有什么想法吗?
最佳答案
我一直在为同样的问题撞墙。它似乎与 Android 2.1/2.2(也许是 2.0?)隔离开来。选择在 Android 1.5/1.6 中工作正常。我什至创建了一个简单的页面,只是将选择的显示样式从无更改为阻止,但选择仍然无法始终如一地打开。奇怪的是,有时在页面刷新后它可能会工作,然后在另一次刷新后它可能会再次损坏。如您所述,元素会触发焦点和点击/触摸事件,因此我不知道问题出在哪里。
有时,如果我缩放页面,我可以选择打开,但即使这样,所选值也不会在页面上的选择元素中表示。
我提交了一个 bug report给 Android 开发团队,但即使它在未来的版本中得到修复,这个问题在 2.1/2.2 中仍然存在。
有人找到解决方法了吗?
//----更新------
如果您使用 webkit-transition 来显示/隐藏元素,将以下事件附加到元素似乎可以修复其中的选择:
.addEventListener("webkitTransitionEnd",function(e){ this.innerHTML = this.innerHTML; },false);
我不完全确定为什么会这样,但出于某种原因将元素重写到 DOM 似乎有所帮助。在 Android 2.1/2.2 模拟器、EVO4G 和 MyTouch 中测试。
关于javascript - ANDROID WEBKIT : Select elements getting focus events, 但打不开!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469660/