android - jquery mobile,Android 中的 Chrome 版本 50 选择菜单出错

标签 android jquery google-chrome select mobile

我已将我的 Chrome 浏览器更新到最新版本,但我遇到了以下问题:

当我选择一个选择菜单的选项时,它没有显示为选中,我重复选择过程,然后选择确定。如果我尝试选择其他选项,它会发生同样的情况,第一次不好,第二次好。自从我更新到 Chrome 的第 50 版后,它就发生了,而以前的第 49 版工作正常。

我使用的是搭载 Android 5.1.1 的华为 Y5,它与搭载 Android 6 的 Nexus 一样。

我的jquery mobile版本是1.4.5

这似乎只发生在 Android 中的 Chrome 版本 50 上,在桌面上工作正常。在华为自带的浏览器下,正常。

测试这个问题很简单,直接看jquery mobile的select menu的demo:

http://demos.jquerymobile.com/1.4.5/selectmenu/

一件重要的事情,在以前版本的 jquery mobile 中工作正常,示例:

http://demos.jquerymobile.com/1.3.2/widgets/selects/

有什么办法可以解决这个问题吗?任何帮助将不胜感激。

提前致谢

费利克斯。

最佳答案

我不得不质疑 JQuery Mobile 在默认情况下隐藏 select 元素焦点上的工具栏背后的逻辑。 native 浏览器 select 元素以各种特殊方式覆盖页面,甚至是非 native 选择弹出窗口(当指定数据属性 data-native-menu="false" 在 html 或 nativeMenu: false 在 selectmenu 选项中)绝对定位为对话框。这意味着工具栏确实不会影响到选择菜单选项的不动产,因为它们将始终覆盖包括工具栏在内的所有内容。对我来说,这使得第 12664 - 12692 行的代码被注释为:这隐藏了弹出键盘上的工具栏以提供更多屏幕空间,而不是选择元素所必需的。

解决方法/解决方案:幸好 jQuery-Mobile 允许您使用数据属性 data-hide-during-focus 覆盖页眉/页脚中的此设置 - 只需将其设置为:

data-hide-during-focus="input, textarea"

当一个选择元素获得焦点时,它不会再试图隐藏工具栏。

即简单地改变你的标题:

<div data-role="header" data-position="fixed" data-tap-toggle="false">
  Header
</div><!-- /header -->

到:

<div data-role="header" data-position="fixed" data-tap-toggle="false"  data-hide-during-focus="input, textarea">
  Header
</div><!-- /header -->

...页脚也是如此。

关于android - jquery mobile,Android 中的 Chrome 版本 50 选择菜单出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36906229/

相关文章:

jquery - $ ("div#myDiv").css ("content") 在 IE8 中返回未定义

javascript - jQuery 的 '.focus()' 的行为不像我预期的那样

android - 为每个用户创建 Firebase 主题

java - 运行 Android Support v4 库演示程序

java - 在android中验证函数先决条件

javascript - NVDA 屏幕阅读器无法读取 Chrome 中的 Javascript Alert() 弹出窗口

google-chrome - 如何停止 Chrome 的选择证书窗口?

android - Google Analytics Easy Tracker 问题

javascript - 如何简化这个javascript?

php - 在 CodeIgniter 中通过 ajax 插入时出现数据库错误