如果用户取消了移动设备上的触摸,则触发操作

时间:2015-06-25 01:01:09

标签: javascript html5 web-applications javascript-events mobile-safari

我有一种情况需要跟踪用户是否取消了移动设备上的触摸。我认为触摸事件会很容易,但我已经坚持了两天了。以下是我一直在尝试的内容:

$("#element)
  .bind('touchstart', function() {
    action1();
  })
  .bind('touchcancel', function() {
    action2();
  })
  .bind('touchend', function() {
    action3();
  })

touchstart和touchend工作正常,但touchcancel永远不会运行。即使我将手指放在元素之外,也会触发touchend动作但不会触碰。

1 个答案:

答案 0 :(得分:0)

您是否尝试过将手指拖离显示屏边缘?这曾经导致旧手机上的触摸屏。

编辑:当系统需要取消触摸时会发生touchcancel,因此您可能会尝试应用程序或操作系统启动的行为,这可能会中断用户正在执行的操作。一些可能导致此问题的例子

  • 接收屏幕通知,如来电
  • 修改dom,使触摸开始焦点的元素在不同的位置重新渲染
  • 删除作为touchstart焦点的dom元素