相关疑难解决方法(0)

单击两次后无法在iOS上键入html输入字段

我在iOS上遇到了一个问题,我为它做了一个小提琴:

http://jsfiddle.net/Hk56Q/

如果事件监听器被添加到文档中以用于任何触摸事件(touchstart/touchmove/touchend),如下所示:

function onTouch( e ){};
document.addEventListener( 'touchstart', onTouch, false );
Run Code Online (Sandbox Code Playgroud)

这导致输入字段在iOS上具有以下行为:

  • 第一次触摸:输入获得焦点,用户可以正确输入
  • 随后的触摸(专注于现场已经存在):打字不再起作用

我在iPad和iPhone(模拟器和实际设备)上在iOS 5,5.1和6上遇到并测试了这个问题.

唯一的修复似乎是删除事件监听器以恢复输入字段的正确行为(或实际上从不添加监听器):

document.removeEventListener( 'touchstart', onTouch);
Run Code Online (Sandbox Code Playgroud)

我还注意到,如果页面上有多个iframe,并且其中一个iframe将监听器添加到其文档中,它也会破坏其他iframe的输入字段.

小提琴在我的Android手机上表现正常.

任何想法为什么会发生这种情况?或者如何为触摸事件提供全局自定义事件处理程序,而不会破坏iOS上的输入?

javascript events input touch ios

13
推荐指数
2
解决办法
5179
查看次数

标签 统计

events ×1

input ×1

ios ×1

javascript ×1

touch ×1