javascript - ANDROID WEBKIT : Select elements getting focus events, 但打不开!

标签 javascript html android mobile-webkit

我在移动网站的表单中有一系列选择元素。这些选择元素位于通过 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/

相关文章:

html - 我想知道如何在数据列表项上应用 css。我想更改高度和字体大小

android - 如何更改 TextView 上的字体?

android - 未选择默认单选按钮

java - 如何编写数字+字符串的验证?

javascript - 如何使用selenium和同步JS进行截图

javascript - JavaScript 中的 "Variable"变量

javascript - 如何将信息从 node.js 传递到 html

javascript - 加载未显示在框内

javascript - 单击后禁用 HTML 链接

javascript - 在 Chrome 下更改其 href 属性时更新链接的访问状态