我正在做一个提供结果的搜索栏(类似于自动完成功能),但是在iOS的Safari上,当键盘打开时在输入标签之外点击时,它不会失去焦点。

我做了一个简单的jsfiddle来演示重现此问题的最少代码:

https://jsfiddle.net/coppolaemilio/0bqrLcwe/4/

的HTML

<input class="selector" type="text">
<ul>
  <li>element</li>
</ul>


JS(jQuery)

$('.selector').focus(function() {
    $('ul').addClass('visible');
});
$('.selector').focusout(function() {
    $('ul').removeClass('visible');
});


的CSS

.selector{
  margin: 20px;
}
ul {
  display: none;
}
ul.visible {
  display: block;
}

最佳答案

我设法使用以下方法找到解决方案:

$(document).on('touchstart', function (event) {
  if (!$(event.target).closest('.country-selector').length) {
    if ($('.country-selector').is(":visible")) {
      $('input.country-selector').blur();
    }
  }
});


https://jsfiddle.net/coppolaemilio/0bqrLcwe/5/

关于javascript - Safari(移动设备)IOS-在外部单击时输入不会失去焦点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44849859/

10-13 00:39