Lona HTML5: Como lidar com mousedown mouseup mouseclick

Eu estive brincando com a tela html5 e me deparei com um problema.

<code>canvas.onmousedown = function(e){
        dragOffset.x = e.x - mainLayer.trans.x;
        dragOffset.y = e.y - mainLayer.trans.y;
        canvas.onmousemove = mouseMove;
}
canvas.onmouseup = function(e){
    canvas.onmousemove = null;
}

canvas.onmouseclick = mouseClick;

function mouseMove(e){
    mainLayer.trans.x = e.x - dragOffset.x;
    mainLayer.trans.y = e.y - dragOffset.y;
    return false;
}

function mouseClick(e){
    // click action
}
</code>

Neste código, eu faço o meu mouse clicar + arrastar e deslocar a visualização da tela traduzindo pelo deslocamento de arrasto. Mas também tenho um evento de clique. Agora, sempre que eu arrasto meu mouse e o solto, ele roda ambos onmouseup AND onclick.

Existem técnicas para torná-las únicas?

questionAnswers(3)

yourAnswerToTheQuestion