17

input在移动浏览器中关注文本时(在 iOS Safari 和 Chrome 上测试),文本插入符号出现在任何div放置在顶部的 s 的顶部。

这是一个快速、简单的示例:http: //jsfiddle.net/XQf8N/

下面是效果截图:

在此处输入图像描述

解决此问题的最佳方法是什么?

我在这里尝试了答案:JQuery Mobile:聚焦输入文本不尊重 z-index,出现在其他所有内容之上,但它不起作用。

更新在进行了更多挖掘之后,我也尝试$("input").blur();在切换菜单时进行操作,div但这似乎也不适用于移动设备,但它确实消除了对桌面的关注。

更新 2可能与此有关:iPad Safari 不会触发模糊事件,尽管如果我在 setTimeout 中模糊文本框,而不是在事件侦听器中,文本框会成功模糊。看到这个小提琴:http: //jsfiddle.net/XQf8N/17/

更新 3尝试将输入传递给隐藏的文本框似乎也不起作用http://jsfiddle.net/XQf8N/23/

更新 4意识到我没有按照建议隐藏光标 - http://jsfiddle.net/XQf8N/24/ - 这只是在将鼠标指针悬停在文本框上时隐藏了鼠标指针,对插入符号没有任何作用

更新 5建议禁用文本框,这不会失去焦点,也不会关闭键盘http://jsfiddle.net/XQf8N/27/

更新 6此解决方案:https ://stackoverflow.com/a/7761438/1061602在事件侦听器中不起作用,请参阅小提琴:http: //jsfiddle.net/XQf8N/29/

更新 7此解决方案:https ://stackoverflow.com/a/6473076/1061602也不起作用,与禁用文本框的结果相同

更新 8在使用敲除工程绑定的函数中模糊文本框:http: //jsfiddle.net/XQf8N/33/

任何想法原始事件侦听器有什么问题?希望此故障排除对遇到相同问题的人有所帮助。

4

4 回答 4

2

好的,不确定小提琴发生了什么,但这个有效:http: //jsfiddle.net/XQf8N/33/

这是相同的,除了不是手动侦听事件然后调用blur()文本框,blur()而是从敲除绑定中触发。

当我使用淘汰赛时,我不妨模糊淘汰赛事件绑定中的文本框。

于 2013-11-04T14:43:56.583 回答
0

您应该尝试document.activeElement.blur();在菜单打开后立即执行此代码。

于 2016-11-01T18:34:17.047 回答
0

当我的侧栏在表单顶部打开时,我遇到了同样的问题(我仍然可以看到侧栏上闪烁的光标)。我最终通过这个答案解决了这个问题: Position fixed not working in mobile browser

-webkit-backface-visibility: hidden;在我的position: fixed元素上使用并将父级设置为position: relative. 我读到这-webkit-backface-visibility可能是“将事物提升到新的堆叠上下文中,因此强制进行不同的渲染”。我不确定您的元素的定位是什么,但我希望这是相关且有用的。

于 2019-02-08T18:29:32.043 回答
0

我能够visibility: hidden;用于我的解决方案。

于 2016-12-13T19:29:33.617 回答