我正在開發一個搜索模塊,並堅持在此功能中,邏輯是:在輸入鏡頭的圖標和重點如何激活的iOS鍵盤着眼於輸入點擊一個按鈕後?
用戶點擊顯示鍵盤
在Android這個工作得很好,只是把:
jQuery('input').focus();
,但在iOS上,這不工作時,輸入顯示,但不獲得焦點,鍵盤沒有出現,任何想法?
我正在開發一個搜索模塊,並堅持在此功能中,邏輯是:在輸入鏡頭的圖標和重點如何激活的iOS鍵盤着眼於輸入點擊一個按鈕後?
用戶點擊顯示鍵盤
在Android這個工作得很好,只是把:
jQuery('input').focus();
,但在iOS上,這不工作時,輸入顯示,但不獲得焦點,鍵盤沒有出現,任何想法?
您可能需要使用touchstart
爲它在iOS上工作(這也應該適用於Android)。在單擊處理程序,觸發touchstart
輸入。我假設您輸入的是myinput
。
$('input.myinput').trigger('touchstart');
$('input.myinput').on('touchstart', function() {
$(this).focus();
})
這裏是一個hacky變通。
位置你輸入過頂鏡頭圖標按鈕。將輸入容器設置爲與按鈕類似的寬度,並將不透明度設置爲0,以使其不可見。事情是這樣的:
div.input-container {
position: absolute;
top: 10px;
right: 10px;
width: 60px;
z-index: 1000;
opacity: 0;
}
然後,當用戶點擊該按鈕時,他們實際上是輸入,將本地設置焦點內點擊。添加輸入點擊事件處理程序以將不透明度設置爲1可將輸入寬度設置爲適當的大小。
inputField.addEventListener('click', (event) => {
//use Jquery or plain JS to add a search-mode class to unhide the input
});
div.input-container.search-mode {
width: 100%;
opacity: 0;
}
您還必須添加一個方法來去除search-mode
CSS類來獲得輸入字段回其初始隱藏狀態。
我試過的東西呈三角這一點。我會嘗試一下你的代碼片段,然後回覆一個反饋。 –
好,不要在所有的工作,有時觸發鍵盤,有時不。我會繼續嘗試 –