iOS や Android では 擬似的な clickイベント が用意されており、DOMに振ることができます。
clickイベントが発火する条件はもろもろあるのですが、指を動かしながら画面をタップすると、短めのフリックもclickと判定してくれることがわかります。
しかし、この挙動は touchmove を preventDefault してしまうと無効になってしまい、タッチの開始から終了まで、同じ座標でないと clickイベントが発火しなくなってしまいます。大きめのボタンが置いてあるサイトなどでは注意が必要です。
DEMO
赤いボタンは普通に clickイベント が振ってあり、青いボタンは touchmove を preventDefault したうで clickイベント を振っています。
スマートフォンで指を動かしながらタップしてみると違いがわかると思います。