Я не знаю насколько это правильно, но опишу как делаю я:
var treshold = 10;
var touchStart = {
x: 0,
y: 0
};
$(elem).on({
'touchstart': function(e) {
var touch = e.originalEvent.changedTouches[0];
touchStart.x = touch.clientX;
touchStart.y = touch.clientY;
},
'touchend': function(e) {
var touch = e.originalEvent.changedTouches[0];
var dx = Math.abs(touch.clientX - touchStart.x);
var dy = Math.abs(touch.clientY - touchStart.y);
// если дельта по x и по y меньше некоторого порогового значения,
// значит у нас не свайп, а клик
if (dx < treshold && dy < treshold) {
console.log('this is click');
}
}
});