我正在开发一个HTML5移动应用程序(使用常规jQuery,而不是移动设备),它实现了一个出现在textarea下面的自定义自动完成列表。用户从列表中选择一个选项,单词自动完成,用户继续照常打字。
问题是用户点击文本框外部以从自动完成中选择项目,因此textarea会暂时失去焦点。由于在Android浏览器中取消激活focus(),我无法像往常那样立即重新聚焦并保留插入符号的最后位置。
是否有一种解决方法可以让我重新关注textarea,保持插入位置为常规blur()和focus()调用?
修改 潜在假设的来源:这里提到:https://stackoverflow.com/a/10243010/832607和这里: http://ambrusmartin.wordpress.com/2012/08/30/soft-keyboards-in-android-iphone-phonegap-applications-when-we-call-focus/(已经尝试过在链接中提到的解决方案)
答案 0 :(得分:1)
相反重新聚焦textarea我建议尽量不要失去焦点。我在阻止mousedown
上的默认操作时实现了这一点。
以下是jQuery,假设list
是您的选项列表,所有选项都有listEl
类:
list.on('mousedown', '.listEl', function(e) {
e.preventDefault();
});