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