使用电脑鼠标时,单击事件可以正常工作。即使我将鼠标按钮放在按钮上并移动光标,然后在按钮区域内释放鼠标按钮,单击事件也会触发。但是,在触摸屏幕上使用时却不起作用。我知道原因是在触摸屏幕上,这种拖动被视为滚动。只有当我在按钮上不移动手指时,才会触发单击事件。因此,仅仅按下和松开而没有移动手指。我的客户遇到的问题是他们移动手指太多,很难获得单击事件。是否可能设置更大的阈值,以便手指移动多少仍被视为单击而不是滚动?
我找到了这篇文章,其中自己处理了触摸事件并将它们转换为单击事件。 http://phonegap-tips.com/articles/fast-touch-event-handling-eliminate-click-delay.html 我不想走这条路。
您有任何建议如何解决这个问题吗?
以下是有关触摸事件的更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Touch_events 查看如何处理单击,其中描述了在触摸屏幕上单击的工作方式。但是我仍然无法使其正常工作。几个月前,我在我的touchmove事件处理程序中添加了
编辑:2019.11.5
以下是之前有效但现在无效的内容:
我找到了这篇文章,其中自己处理了触摸事件并将它们转换为单击事件。 http://phonegap-tips.com/articles/fast-touch-event-handling-eliminate-click-delay.html 我不想走这条路。
您有任何建议如何解决这个问题吗?
以下是有关触摸事件的更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Touch_events 查看如何处理单击,其中描述了在触摸屏幕上单击的工作方式。但是我仍然无法使其正常工作。几个月前,我在我的touchmove事件处理程序中添加了
evt.preventDefault();
,它确实解决了问题,但目前似乎不起作用了。编辑:2019.11.5
以下是之前有效但现在无效的内容:
html
<body (touchmove)="touchMoveEvent($event)"></body>
TypeScript
touchMoveEvent(ev: Event): void
{
ev.preventDefault();
}
下面是一个基本的Angular按钮和点击处理程序的示例,如果用户移动手指太多,则无法正常工作。 我没有检查阈值,但我认为它大约在10px-20px左右。
<button (click)="onClickEventHandler($event)">Press button</button>
onClickEventHandler(ev: Event) {
//do the thing here
}
我使用Chrome的开发者工具切换设备工具栏测试了触摸屏功能。