Javascript onclick ontouch

时间:2018-05-22 12:19:50

标签: javascript

我希望在任何设备上的html画布中提供非常有限的绘图可能性。当用户交互时,只有三件事可能发生:a" unit" (例如,它可能是40像素,或者10,它不是很重要)方块出现在没有的地方,当#34;单击"时矩形消失,最后,几个矩形融合。

前两个需要检测点击(相同的向下和向上坐标),后者需要检测拖动(不同的向下和向上坐标)。

因此,应用程序唯一需要做的就是检测(并记住)向下,然后向上检测坐标,无论是触摸,点击还是其他任何内容。

最后,我不想使用jquery或任何lib,而是从我的编码中学到一些东西。

此代码看起来没问题吗?你能提出改善意见吗?

canvas.ontouchstart = canvas.onmousedown = onDown;
function onDown(e) {
  saveDownCoords(e);
  e.preventDefault();
};
canvas.ontouchend = canvas.onmouseup = onUp;
function onUp(e) {
  ...do whatever;
};

第二个问题,关于preventDefault(),stopPropagation()(或其他任何调用):我已经读过需要停止事件注册两次,作为触摸和点击 - 但在什么情况和设备,确切地说,做触摸事件然后单击事件触发以获得唯一的用户物理操作?

1 个答案:

答案 0 :(得分:-1)

对于第一个问题,最好使用element.addEventListener()https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

canvas.addEventListener("mouseup", function(event) {
    event.preventDefault(); // If you need to
    // ... Do whatever
}

关于您的第二个问题,event.preventDefault()调用是为了停止默认行为。例如,它可用于防止双击选择文本。