使用触发器事件打开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