function touchHandler(event)
{
    var touches = event.touches;
    if (!touches.length){
     return
    }
    var first = touches[0],
        type = "";
    switch(event.type)
    {
        case "touchstart": type = "mousedown"; break;
        case "touchmove":  type = "mousemove"; break;        
        case "touchend":   type = "mouseup";   break;
        default:           return;
    }

    // initMouseEvent(type, canBubble, cancelable, view, clickCount, 
    //                screenX, screenY, clientX, clientY, ctrlKey, 
    //                altKey, shiftKey, metaKey, button, relatedTarget);

    var simulatedEvent = document.createEvent("MouseEvent");
    simulatedEvent.initMouseEvent(type, true, true, window, 1, 
                                  first.screenX, first.screenY, 
                                  first.clientX, first.clientY, false, 
                                  false, false, false, 0/*left*/, null);

    first.target.dispatchEvent(simulatedEvent);
    event.preventDefault();
}

function touchMe_init() 
{
    document.addEventListener("touchstart", touchHandler, true);
    document.addEventListener("touchmove", touchHandler, true);
    document.addEventListener("touchend", touchHandler, true);
    document.addEventListener("touchcancel", touchHandler, true);    
}
touchMe_init()
// thanks, Mickey Shine!

@@ -24,16 +24,40 @@
 vent)%0A%7B%0A
+    console.info(event)%0A
     var 
@@ -81,16 +81,41 @@
 ouches;%0A
+    console.log(touches)%0A
     if (
@@ -180,17 +180,17 @@
 s%5B0%5D
-,
+;
 %0A    
-   
+var
  typ

Update touchMe.js