我在5年前开发了一个基于网络的移动数据输入应用程序,在iOS 的 9.3或9.3.1版本之后停止在Safari中正常运行。它可能已经开始提前,但我知道它仍然适用于 iOS 9.2.1 。它可以在Chrome中正常运行。
以下jsfiddle表示应用程序的片段,它不起作用:点击任何对象都无法打开选项。
https://jsfiddle.net/panmqj8a/2/
要在iDevice上运行它而不看HTML / CSS / JS框架: https://jsfiddle.net/panmqj8a/2/embedded/result/
那里有相当多的代码,而且我不希望这个问题看起来太长,但显然我必须在这个问题中粘贴一些代码才能被认为是有效的。
以下是构建其中一个选择对象的代码示例:
var activity_data = [
{ "id" : "AD1",
"name" : "Action 1"
},
{ "id" : "AD2",
"name" : "Action 2"
},
{ "id" : "AD3",
"name" : "Action 3"
}
];
$.each(activity_data, function(ind,obj) {
$('.sel_act').append(
$('<option></option>').val(obj.id).html(obj.name)
);
});
在完整版的应用程序中,同样的事情发生了(不能点击任何元素)加上屏幕上的其他按钮也会变得没有响应。
对于我的生活,我无法弄清楚为什么应用程序和这个jsFiddle可以在Safari iOS 9.2.1中运行,但不适用于Safari iOS 9.3.1。
编辑 - 现在这个小提琴似乎对我来说是间歇性的。这很烦人。
答案 0 :(得分:0)
iOS和Safari中的下拉菜单也遇到了同样的问题。最后,我通过在这些特定类中添加cursor:pointer
来解决问题。你也可以尝试这个,它可能会工作。
在您的情况下,课程可以.sel_hcw
或.mom_select
尝试一次。
答案 1 :(得分:0)
FWIW - 事实证明window.confirm()是问题所在。没有真正记录在任何地方,但是一旦我删除了所有的window.confirm()并用flash消息替换它们,我并不真正需要用户输入(从而改善交互),或者是一个承诺我做了什么的div ,问题就消失了。