前提
我的思路需要在點擊事件之后,先讓一個input元素失去焦點,再讓另一個input 元素獲取到焦點,代碼如下:
$('#xd_content .tabcontent .nav').on('click', function () { $('#xd_content ').blur(); setTimeout(function () { $('#search .shop-search-ipt').focus(); }, 400); });
發現安卓穩定出現小鍵盤,但是ios不觸發鍵盤。找了半天,發現是setTimeout的問題,所以我只能 考慮 把 $('#search .shop-search-ipt').focus(); 寫在外面,不使用setTimeout.
后來我測試單獨寫一個頁面剛進來,執行獲取焦點的方法,ios依然沒有成功。
(function(){ $('#input_box').focus(); })();
我又想:
(function(){ $('#button').on('click',function(){ setTimeout(function(){ $('#button2').trigger('click'); },4000) }) $('#button2').on('click',function(){ alert('觸發'); $('#input_box').focus(); }) })();
既然點擊事件,之后不能使用settimeout那么我,trigger一個點擊事件,在另一個事件里面出發獲取焦點就可以了,結果發現還是不行。
想要觸發鍵盤,只能是用戶手動的選擇事件 才能彈出鍵盤。網上說這是ios的安全機制。我也沒有進一步研究為什么會這樣,但是就事實來說,應該避免setTimeout,或者用戶不是直接操作的方法來獲取 input 焦點。
希望以后能找到合適的解決辦法。
以上這篇解決iOS下無法觸發focus事件的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答