動かざることバグの如し

近づきたいよ 君の理想に

JavaScriptでスマホの長押しを検知する方法

やりたいこと

スマホでとある要素を長押ししたときにイベントを発火させたい

PCでもロングクリックで反応させたい

解決策

自分で色々実装するのはつらいので Hammer.js というライブラリを使う

Hammer.jsではいろんなデバイス/ブラウザ間のタッチイベントの動作の差で吸収してくれるJSライブラリ

タッチの他にも、スワイプ、ピンチとかもあって、その中に長押し(Hammer.Press)を検知する機能もある。

サンプル

オプションのtimeは何ms長押ししたら「長押し」として検知するか