Как правильно обрабатывать клики на сенсорных устройствах?
Я не знаю насколько это правильно, но опишу как делаю я: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');
    }
  }
});
Touchstart или Touchend - вполне себе правильный вариант. При работе с мышкой, в 99% случаев, вешают события на click не потому, что нужно такое поведение (нажал, потом отпустил), а просто потому что так привычней. В то же время, часто используют mousedown и mouseup по отдельности, чтобы более четко контролировать момент события.