2013-07-18 3 views
1

Я использую события мыши для рисования свободной линии (используя Raphael), которая отлично работает с событиями мыши, но не работает с событиями касания. Должен ли я заменить event.pageX на event.screenX или event.clientX, если это событие касания?попытка работы с событиями касания

var board = $("#board"); 
board.bind("mousedown", _mousedownHandler); 
     board.bind("touchstart", _mousedownHandler); 
function _drawFreeLineBegin(x, y) { 
     board.lineEl.path = _drawOptions.paper.path("M" 
       + (x - _drawOptions.offset.left) + "," 
       + (y - _drawOptions.offset.top)); 
     _setNewElementProperties(board.lineEl.path, 
       Configuration.getProperties("freeLine")); 
      board.bind("mousemove.mmu", _mousemoveHandler); 
     board.one("mouseup.mmu", _mouseupHandler); 
     board.bind("touchmove.mmu", _mousemoveHandler); 
     board.one("touchend.mmu", _mouseupHandler); 
    } 
function _mousedownHandler(event) { 
if(event.type == "touchstart"){ 
      event = event.touches[0]; 
     } 
_drawFreeLineBegin(event.pageX, event.pageY); 
return false; 
} 

    function _mousemoveHandler(event) { 
    if(event.type == "touchmove"){ 
      event = event.touches[0]; 
     } 
    board.lineEl.path 
         .attr(
           "path", 
           board.lineEl.path.attr("path") 
             + "L" 
             + (event.pageX -) 
             + "," 
             + (event.pageY)); 
       return true; 

} 

function _mouseupHandler(event) { 
board.unbind(".mmu"); 
board.lineEl.path = null; 
    event.stopPropagation(); 
    event.preventDefault(); 
} 

ответ

1

Выяснено, что мне нужно заменить event.touches [0]; с event.originalEvent.touches [0];

Смежные вопросы