我有一个带有几个日期字段的搜索表单,我很高兴使用jQuery UI的datepicker:
<input class="formFields datepicker" id="arrival" name="arrival" required="" placeholder="Arrival" readonly="true" type="text">
<input class="formFields datepicker" id="departure" name="departure" required="" placeholder="Departure" readonly="true" type="text">
$( ".datepicker" ).datepicker();
这会在桌面浏览器上产生一个相当精彩,令人愉悦的眼睛日期选择器弹出窗口:
但出于某种原因,在iPhone和iPad上,点击这些字段什么也没做。 Chrome和Safari都是这种情况。
我已使用以下内容检查是否正在识别click事件(<)。
$(".datepicker").click(function(){
alert("clicked me");
});
我还尝试修改输入字段以键入日期而不是文本:
<input class="formFields datepicker" id="arrival" name="arrival" required="" placeholder="Arrival" type="date">
但是这并没有真正起到解决方案的作用(实际上是推动我首先使用jQuery datepicker)的原因有几个。
答案 0 :(得分:0)
可能有点晚了。
我通过注释掉一个绑定('mousemove'...)解决了这个问题,似乎该事件导致iOS Chrome和Safari(在我的情况下)无响应。
我注释掉了代码,代码再次正常运行。但是我需要在PC上使用mousemove,所以我将鼠标移动到if mobile语句中。
if (window.innerWidth < 480) {
$(document).bind('mousemove', function (e) {
// something that work on PC.
})
}
使用innerWidth 480来检测移动设备可能是愚蠢的。但它会让你知道如何解决这个问题。
如果它使用了很多,你也可以包装bind方法。有一个图书馆 http://touchpunch.furf.com/似乎没有完全正常运作,但却得到了这个想法。