当我从ios设备(也许以后是android)访问javascript应用程序时,我想向我的javascript应用程序添加一些多点触控功能。
我想提供类似Shift键的功能:用户可以用一根手指按住屏幕上的一个按钮,并且在按下此按钮时,屏幕其余部分上的轻击 Action 的行为与经典轻击略有不同。
我遇到的问题是,除非为按住Shift键的第一只手指触发了 touchmove ,否则我不会收到任何针对触摸手指的 touchend 事件。
因为屏幕非常敏感,所以很容易触发 touchmove 事件,并且在大多数情况下一切正常。
但是,当用户的手指有点太静止时,直到用户稍微移动手指才检测到敲击。
这会在点击和屏幕上发生的 Action 之间引起可变的“延迟”(如果用户非常镇定,延迟可能会有所不同,可能会持续几秒钟)。
我的猜测是,这种延迟将导致用户再次轻按,从而再次触发该 Action ,这是我不希望的!
您可以在这里使用ipad/iphone对其进行测试:http://jsfiddle.net/jdeXH/8/
试着让您的手指保持在青色div上,同时轻按红色div,以使 body 保持绿色几秒钟。
这是预期的行为吗?
有解决该问题的已知方法吗?
我希望从屏幕上移开手指后立即触发touchend事件。
我在iOS 5.1.1(ipad1和iphone4s)上进行了测试
编辑:发现了类似的问题Multitouch touchEvents not triggered as they should on Safari Mobile
最佳答案
好吧,看来该错误困扰了some people more than me,他们直接向Apple提交了一个错误,并在几年后现已在iOS6中修复:)
关于javascript - 多次触摸: touchend event fired only when a touchmove occurs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11314185/