2012-07-02 61 views
0

我有一個webapp將在iOS設備上運行,我試圖通過單擊特定標籤來調用本機datePicker。打開iOS本機datePicker與觸發事件

我知道如果我有一個<input type='date'>它會通過觸摸它打開本機日期選擇器。

我的策略是把這個輸入與「不透明度:0」的標籤下,並結合標籤的click事件到輸入的觸發事件,像這樣:

$('#pickerLabel').bind('click',function() { 
    $('#pickerInput').trigger('click'); 
}); 
$('#pickerInput').click(function() { 
    alert("open Picker"); 
}); 

我觀察到的是什麼這個方法只是觸發綁定到click事件的函數(它警告「打開Picker」),但它不會打開本機iOS的datePicker,就像我單擊輸入本身一樣。

你能幫我嗎?

PS:我有jquery移動框架也包括在項目中,我嘗試在輸入中使用tap事件,並得到完全相同的結果。

回答

1

您是否嘗試過啓動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); 
}); 
+0

你知道我在哪裏可以找到這個用法的具體例子嗎? – Nunoestrada

+0

我已經更新了包含示例的答案。我還沒有遇到過如何實現它的官方示例。 –

+0

我試過你在這裏發佈的代碼,但我得到以下錯誤:「NOT_SUPPORTED_ERR:DOM例外9:實現不支持請求類型的對象或操作」 – Nunoestrada

0

我設法通過以下方式來解決這個問題:我放置在兩個標籤,並在兩個輸入不同的div。我將兩個div放在一起,使輸入div具有更高的Z-index(並將不透明度保持爲0)。

我使用的CSS在這個論壇的問題:How to overlay one div over another div

這仍然是唯一不具備所需的行爲解決方法。

相關問題