如何在没有touchstart的Vue上触发touchend事件?

ccrfmcuu  于 2023-01-17  发布在  Vue.js
关注(0)|答案(1)|浏览(195)

我有mousedownmouseup事件在桌面上运行良好,需要在移动的上进行类似的工作。

<rect :x="xPos" :y="yPos" width="75"
     class="arrowbox"
     @mousedown="mousedown"   @mouseup="mouseup"
    />

在发现我对移动的(Galaxy Tab)上的mousedown没有React后,我尝试了这个:

<rect :x="xPos" :y="yPos" width="75"
     class="arrowbox"
     @mousedown="mousedown" @touchstart="mousedown"
     @mouseup="mouseup" @touchend="mouseup"
    />

这为移动的上的touchstart提供了正确的响应,但是**mouseuptouchend现在都被触发了,所以我有两次触摸,而我只想触摸一次。所以我试着删除touchend处理程序。现在手机触摸屏可以正常工作了 * 如果触摸很快完成 *。如果我触摸,保持两秒钟,然后释放,touchend事件似乎没有触发。是否有解决方案?
我看过其他类似的帖子,但它们与touchmove事件有关,我不需要。

bxgwgixi

bxgwgixi1#

事实证明,这不是一个与vue相关的问题,只是我缺乏编程touch的经验。我需要为触摸事件添加不同的处理程序,并在使用与鼠标事件相同的代码之前调用preventDefault()。

function touchstart(e)
{
  e.preventDefault();
  mousedown();
}

相关问题