我想在我的 javascript 应用程序从 ios 设备(以后可能是 android)访问它时添加一些多点触控功能。
我想提供一个类似 shiftkey 的功能:用户可以用一根手指按住屏幕上的一个按钮,当这个按钮被按下时,屏幕其余部分的点击动作的行为与经典的点击略有不同。
我遇到的问题是,除非为按住shiftkey按钮的第一根手指触发touchmove ,否则我不会收到任何点击手指的touchend事件。
因为屏幕非常敏感,所以 touchmove事件很容易触发,并且在大多数情况下一切正常。
但是当用户的手指有点太静止时,直到用户稍微移动他的手指才检测到轻敲。这会在点击和屏幕上发生的动作之间引起可变的“延迟”(如果用户非常平静,延迟可能会有所不同并持续几秒钟)。我的猜测是,这种延迟会导致用户再次点击,从而再次触发动作,这是我不想要的!
你可以在这里用你的 ipad/iphone 测试它:http: //jsfiddle.net/jdeXH/8/
尝试在点击红色 div 的同时将手指非常静止地放在青色 div 上,让身体保持绿色几秒钟。
这种行为是可以预期的吗?是否有一些已知的解决方法?我原以为当手指从屏幕上移开时会立即触发 touchend 事件。
我用 iOS 5.1.1(ipad1 和 iphone4s)测试了这个
编辑:发现一个类似的问题Multitouch touchEvents not trigger as they should on Safari Mobile