使用触发器事件打开iOS本机datePicker
我有一个要在iOS设备上运行的webapp,我试图通过点击特定的标签来调用本地的datePicker。
我知道,如果我有一个<input type='date'>
它将通过触摸它打开本机日期选择器。
我的策略是在标签下面输入“opacity:0”,并将标签的click事件绑定到输入的触发事件,如下所示:
$('#pickerLabel').bind('click',function () {
$('#pickerInput').trigger('click');
});
$('#pickerInput').click(function () {
alert("open Picker");
});
我观察到的是,此方法只是触发绑定到click事件的函数(它警告“打开Picker”),但它不打开本机iOS datePicker,就像我单击输入本身一样。
你可以帮我吗?
PS:我有jquery移动框架也包含在项目中,我尝试在输入中使用tap事件,并得到完全相同的结果。
您是否尝试过启动WebKit触摸事件?
var touchEvent = document.createEvent('TouchEvent');
touchEvent.initTouchEvent(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, touches, targetTouches, changedTouches, scale, rotation);
http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html
(未经测试的)示例可能如下所示:
$('#pickerLabel').bind('click', function(){
var touchEvent = document.createEvent('TouchEvent');
touchEvent.initTouchEvent('touchstart', true, true, document.getElementById('pickerInput'), null, 0, 0, 0, 0, false, false, false, false, [], [], [], 1.0, 0.0);
});
我设法通过以下方式解决这个问题:我将标签和输入放在两个不同的div中。 我将两个div放在一起,使输入div具有更高的Z-index(并将不透明度保持为0)。
我在这个论坛问题中使用了CSS:如何在另一个div上覆盖一个div
这仍然只是一种解决方法,没有所需的行为。
链接地址: http://www.djcxy.com/p/75863.html上一篇: opening iOS native datePicker with trigger event
下一篇: Street view API 3 (add custom minimap) close button Street view and Pegman