首页 > 解决方案 > 如何在移动设备上触发 Mousedown/Mouseup?

问题描述

我正在为我的朋友创建一个网站,让他们可以玩更高质量的Hashiwokakero在线实现。

他们中的一些人有平板电脑,网站上的所有内容都加载得很好,但是当他们去触摸并拖动以形成从一个岛到另一个岛的桥梁时,网页会尝试滚动(即使没有可滚动区域!)。

目前我正在使用以下方法检测鼠标事件:

this.canvas.addEventListener('mousedown', 
    (mouseEvent) => this.mousePressed(mouseEvent), false);

this.canvas.addEventListener('mouseup', 
    (mouseEvent) => this.mouseReleased(mouseEvent), false);

有没有一种简单的方法可以让我在移动设备上调用 mousePressed() 和 mouseReleased() 函数?

谢谢!

标签: javascriptangular

解决方案


触摸屏的类似事件将是touchstart和,它们与桌面的和事件touchend完全相同。来自文档:mousedownmouseup

touchstart当一个或多个触摸点放置在触摸表面上时会触发该事件。

touchend当从触摸表面移除一个或多个触摸点时触发该事件。

您可以查看文档以获取有关触摸事件的更多信息。

我也猜想你可能还需要阻止一些事件冒泡,如果是这样,你可以看看事件冒泡event.stopPropagation()防止它们冒泡。

mousedown如果/touchstartmouseup/事件的逻辑应该相同touchend,您可以将多个事件绑定到侦听器,如此所述。


推荐阅读