问题的实质是释放元素计数的触摸,作为触摸和按住期间显示的覆盖元素上的单击事件。
如何防止这种情况发生?
<https://jsfiddle.net/24r1s6nf/1/>
我在jsfiddle中重新创建了此问题。该问题仅在移动浏览器中发生。点击完成后,覆盖脚本会意外触发。
我有一个脚本,可以在按下/触摸元素1秒钟以上时在网页上显示模式,并显示覆盖图。叠加层具有单击时隐藏模式的功能。
工作流程如下:
问题是当我在移动Chrome IOS中释放触摸时,覆盖层也已显示在触摸位置下方。因此,当我松开触摸以显示模式时,单击事件会自动在叠加层上触发,并且会在隐藏模式脚本上自动触发,这不是我想要的。
有没有一种方法可以强制释放元素上的实际touchend事件,以便我可以在覆盖开始之前调用它。 我尝试了以下无效的方法。
var myevent = new Event(“ mouseup”); myelement.dispatchEvent(myevent);
或 var myevent = new Event(“ touchend”); myelement.dispatchEvent(myevent);
答案 0 :(得分:0)
event.stopPropagation()不起作用。 我通过在touchend中添加event.preventDefault()解决了这个问题。