如果您从台式机浏览器转到https://oorkle.com/browse,然后在左侧查看,则会看到一个使用Bootstrap下拉菜单的过滤器/边栏,您会看到它们起作用(它们下拉菜单):
如果您将视图缩小得足够狭窄,则某些jQuery会将这些下拉列表移动到第二个顶部导航栏中,但它们仍将起作用(它们将下拉):
现在,如果您在从Android或iOS(iPhone或iPad)加载页面时尝试相同的操作,则会发现下拉列表不再起作用:
如果您diff the HTML of the desktop version and the HTML of the Android/iOS version,则只会看到次要的CSS差异:
如果您diff the live HTML (with modifications from JavaScript),则与上面的差异唯一真正的区别是,已向每个选择器添加了一个mobile
类:
Responsive
选项,则无论页面加载时的宽度如何,下拉菜单均不起作用。mobile
类,但这似乎没有任何效果(下拉菜单仍然没有出现)。bootstrap.js
文件替换为最新的v4.1.3 bootstrap.js
文件仍然无法正常工作,但是我不确定是否可以预期使用CSS类或CSS类可能已经改变。在我看来,Bootstrap使用了用户代理字符串,导致下拉列表无法正常工作。
当用户单击外部元素时,您的库(或代码)可能会通过以编程方式模拟HTML select上的第二次单击来处理第一次单击。
程序化/脚本化鼠标事件被视为“不可信”,并且不会处理默认事件。再次,选择将不会扩展,用户必须再次单击。
如果您使用的库提供了整个小部件(某些元素+ HTML select),请尝试将您的库更新为最新版本,以查看他们是否采用了另一种方法(以编程方式将mouseevent发送给HTML select)
答案 0 :(得分:0)
似乎问题出在使用FormStone Selecter plugin(v2.2.3)进行选择的结果,该选择可能使用jQuery处理it seems Android now treats as a security threat and does not allow的点击。
为解决该问题,我让我的Web.py(Python Web框架)模板文件查看了用户代理字符串,如果出现“ android”,它将selects的类设置为“ form-control”(一个Bootstrap类),然后让Bootstrap样式进行选择,并且如果用户代理字符串中的“ android”不是 ,它将照常使用FormStone Selecter插件。
因此,需要澄清一下:尽管我认为选择使用的是Bootstrap,并且Bootstrap无法正常工作,但事实证明选择不是使用Bootstrap的,而Bootstrap v3.0.3选择了< em> do 在Android上工作。