溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解決iOS下無法觸發(fā)focus事件的問題

發(fā)布時間:2021-06-28 15:23:57 來源:億速云 閱讀:404 作者:小新 欄目:移動開發(fā)

這篇文章主要為大家展示了“怎么解決iOS下無法觸發(fā)focus事件的問題”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么解決iOS下無法觸發(fā)focus事件的問題”這篇文章吧。

前提

我的思路需要在點擊事件之后,先讓一個input元素失去焦點,再讓另一個input 元素獲取到焦點,代碼如下:

 $('#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.

后來我測試單獨寫一個頁面剛進來,執(zhí)行獲取焦點的方法,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();
  })
 })();

既然點擊事件,之后不能使用settimeout那么我,trigger一個點擊事件,在另一個事件里面出發(fā)獲取焦點就可以了,結(jié)果發(fā)現(xiàn)還是不行。

想要觸發(fā)鍵盤,只能是用戶手動的選擇事件 才能彈出鍵盤。網(wǎng)上說這是ios的安全機制。我也沒有進一步研究為什么會這樣,但是就事實來說,應(yīng)該避免setTimeout,或者用戶不是直接操作的方法來獲取 input 焦點。

以上是“怎么解決iOS下無法觸發(fā)focus事件的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI