code: function(e) {
  			if (!('changedTouches' in e.originalEvent)) return;
  			var touch = e.originalEvent.changedTouches[0];
  			var x = touch.clientX;
  			var y = touch.clientY;
  			switch (e.type) {
  				case 'touchstart':
  					this._touching = [x, y];
  					break;
  				case 'touchend':
  					var oldX = this._touching[0];
  					var oldY = this._touching[1];
  					var threshold = this.touchThreshold;
  					if (x < (oldX + threshold) && x > (oldX - threshold) &&
  						y < (oldY + threshold) && y > (oldY - threshold)) {
  						this._touching = false;
  						if (this.touchPrevents) {
  							var tagName = e.currentTarget.tagName;
  							if (tagName === 'BUTTON' ||
  								tagName === 'A') {
  								e.preventDefault();
  								e.stopPropagation();
  							}
  						}
  						e.data.method(e);
  					}
  					break;
  			}
  		}
docs: At the first touchstart we register touchevents as ongoing and as soon as a touch move happens we set touching to false, thus implying that a fastclick will not happen when touchend occurs. If no touchmove happened inbetween touchstart and touchend we trigger the event  The `touchPrevents` toggle decides if Backbone.touch will stop propagation and prevent default for *button* and *a* elements