因此,我看到了很多关于 iOS 问题的线程,这些线程关注的是 input/textarea 元素。 (参见 here 和 here)似乎 iOS 不会让您手动关注这些元素之一,并且要求它是真正的点击/点击以关注该元素。
我试过模拟点击、触发点击、直接直接执行 click() ……各种各样的事情。
这是我目前正在尝试实现的解决方法:
$scope.gotoElement = function(eID) {
// call $anchorScroll()
$scope.smoothScrollTo(eID).then(function() {
clickElement('#textarea');
});
}
function clickElement(e) {
$(e).on('touchstart', function() {
//$(e).val('touchstart');
$(e).focus();
});
$(e).trigger('touchstart');
}
您无需担心滚动功能,我知道它可以工作并且我已经对其进行了足够的测试。注释掉的 $(e).val('touchstart')
可以毫无问题地更改文本区域的文本,但是 .focus()
不起作用iOS。我已经在 Android 设备上对此进行了测试,它工作正常,但在 iOS 上它只是不调出键盘。有时它会开始调出键盘半秒钟然后又消失。
我已经查看了上面提到的其他线程,但我似乎无法弄清楚如何为此编写解决方法。
有什么想法吗?
最佳答案
我也遇到过类似的问题。
我的问题通过一个简单的 css 属性解决,即 -webkit-user-select:none
我删除了它并且一切正常。
试试这个。
关于javascript - iOS - 手动关注输入/文本区域的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752250/