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

Triggering action if user canceled touch on mobile device

本文关键字:触摸 操作 取消 用户 移动 如果      更新时间:2023-09-26

我遇到一种情况,需要跟踪用户是否取消了对移动设备的触摸。我原以为接触式活动会很容易,但我已经坚持了两天了。以下是我一直在试验的内容:

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

touchstarttouchend工作正常,但touchcancel从不运行。即使我在元素外释放手指,touchend操作也会运行,但不会运行touchcancel

你试过把手指从显示面板的边缘拖下来吗?这曾经在旧的安卓手机上导致触摸取消。

编辑:当系统需要取消触摸时,就会发生触摸取消,这样你就可以尝试应用程序或操作系统启动的行为,这可能会中断用户的操作。一些可能导致的例子

  • 接收屏幕通知,如来电
  • 修改dom,使触摸启动的焦点元素在不同的位置重新绘制
  • 删除触摸启动的焦点dom元素