手动触发释放按下/触摸的元素

时间:2018-10-07 02:47:42

标签: javascript html overlay

问题的实质是释放元素计数的触摸,作为触摸和按住期间显示的覆盖元素上的单击事件。

如何防止这种情况发生?

<https://jsfiddle.net/24r1s6nf/1/>

我在jsfiddle中重新创建了此问题。该问题仅在移动浏览器中发生。点击完成后,覆盖脚本会意外触发。

我有一个脚本,可以在按下/触摸元素1秒钟以上时在网页上显示模式,并显示覆盖图。叠加层具有单击时隐藏模式的功能。

工作流程如下:

  1. 在元素索引1上按住元素h1 1秒
  2. 在z-index 3上显示模式
  3. 在z-index 2上显示覆盖

问题是当我在移动Chrome IOS中释放触摸时,覆盖层也已显示在触摸位置下方。因此,当我松开触摸以显示模式时,单击事件会自动在叠加层上触发,并且会在隐藏模式脚本上自动触发,这不是我想要的。

有没有一种方法可以强制释放元素上的实际touchend事件,以便我可以在覆盖开始之前调用它。 我尝试了以下无效的方法。

var myevent = new Event(“ mouseup”);   myelement.dispatchEvent(myevent);

或 var myevent = new Event(“ touchend”); myelement.dispatchEvent(myevent);

1 个答案:

答案 0 :(得分:0)

event.stopPropagation()不起作用。 我通过在touchend中添加event.preventDefault()解决了这个问题。