解決iOS下無(wú)法觸發(fā)focus事件的問(wèn)題
前提
我的思路需要在點(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的問(wèn)題,所以我只能 考慮 把 $('#search .shop-search-ipt').focus(); 寫在外面,不使用setTimeout.
后來(lái)我測(cè)試單獨(dú)寫一個(gè)頁(yè)面剛進(jìn)來(lái),執(zhí)行獲取焦點(diǎn)的方法,ios依然沒(méi)有成功。
(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)上說(shuō)這是ios的安全機(jī)制。我也沒(méi)有進(jìn)一步研究為什么會(huì)這樣,但是就事實(shí)來(lái)說(shuō),應(yīng)該避免setTimeout,或者用戶不是直接操作的方法來(lái)獲取 input 焦點(diǎn)。
希望以后能找到合適的解決辦法。
以上這篇解決iOS下無(wú)法觸發(fā)focus事件的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IOS UIImagePickerController從拍照、圖庫(kù)、相冊(cè)獲取圖片
這篇文章主要介紹了IOS UIImagePickerController從拍照、圖庫(kù)、相冊(cè)獲取圖片的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09iOS MRC 下 block 循環(huán)引用問(wèn)題實(shí)例講解
本文通過(guò)文字說(shuō)明加代碼的形式給大家介紹了iOS MRC 下 block 循環(huán)引用問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-12-12使用SDLocalize實(shí)現(xiàn)高效完成iOS多語(yǔ)言工作
這篇文章主要介紹了使用SDLocalize實(shí)現(xiàn)高效完成iOS多語(yǔ)言工作的相關(guān)資料,需要的朋友可以參考下2022-10-10iOS之UITableView計(jì)時(shí)器的實(shí)現(xiàn)方式總結(jié)(NSTimer、DispatchSource、CADisplayLi
這篇文章主要給大家介紹了關(guān)于iOS之UITableView計(jì)時(shí)器的實(shí)現(xiàn)方式,其中包括NSTimer、DispatchSource、CADisplayLink等方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-12-12iOS中的UITableView的重用機(jī)制與加載優(yōu)化詳解
本篇文章主要介紹了iOS中的UITableView的重用機(jī)制與加載優(yōu)化詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02