如何在 Elm 中检测 "long press"?

How to detect "long press" in Elm?

有没有办法在 Elm 中检测 "long press"?即 mouse/pointer 按下事件后一段时间没有移动(或至少没有跨元素边界的移动)。

我正在使用 elm 包 mpizenberg/elm-touch-events。

我在 javascript 中找到了关于这样做的讨论,但在 Elm 中没有。

谢谢

伊万

这是我的做法:

  1. 跟踪按钮被按下的时间——初始化为"not pressed",用Nothing
  2. 表示
  3. 按下按钮时,更新模型以显示按钮已按下 0 秒 (Just 0)
  4. 使用 Time.every 订阅每隔一秒左右递增 'pressed time'
  5. 每次递增后,检查按钮被按下的时间,如果时间足够长就做一些事情

您需要在模型中跟踪每个可以 "long pressed" 的元素的状态。

完整示例:https://ellie-app.com/wRngKVN6Gca1

我不熟悉 mpizenberg/elm-touch-events 包,但我认为您可以修改此代码以轻松使用该包。