欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

解决iOS下无法触发focus事件的问题

时间:2021-01-18 14:43:04|栏目:iOS代码|点击:

前提

我的思路需要在点击事件之后,先让一个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模仿微信长按识别二维码的多种方式

栏    目:iOS代码

下一篇:iOScollectionView广告无限滚动实例(Swift实现)

本文标题:解决iOS下无法触发focus事件的问题

本文地址:http://www.codeinn.net/misctech/46835.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有