Как определить, что touchstart и touchend прошел на том же елементе?
var tmp;

function onTouchStart(e){
 tmp = e.target;
}

function onTouchEnd(e){
 if( e.target == tmp ){
  // выполняем: touchstart и touchend на одном и том же элементе
 }
}

Приходит на ум сохранение в временную переменную event.target при touchstart и последующее сравнение с event.target при touchend. Но это теория, надо проверять на практике. Также стоит проверить stopPropagation.