识别触摸动作导致的上下文事件?

phk*_*phk 9 html javascript contextmenu touch dom-events

我有一个应用程序,可以拖放SVG元素内部的元素(感谢d3-dragd3-zoom,请参阅https://bl.ocks.org/mbostock/3127661b6f13f9316be745e77fdfb084作为此类页面的示例)也可以在启用触摸的设备上使用,但会发生的是,长按后会弹出一个上下文菜单(至少在IE11,Edge和Firefox中)并且挡住了,因此我想阻止上下文菜单显示在这种情况下.

我可以通过处理contextmenu事件和.preventDefault()对事件对象进行操作来禁止显示上下文菜单,但我想知道是否存在一个解决方案,其中上下文菜单只是在触摸案例中被阻止显示而且它仍然会出现在例如右边 -单击或在元素具有焦点时按下菜单键时.

我开始还以为我可以看看.button.buttons事件对象的属性,但它似乎是那些价值被任意02和它看起来像它可以任意组合在不同系统上的各种浏览器进行测试时被发现.

元素已经有了touch-action: none.

是否有一些工作方式使上下文菜单只显示长按触摸的结果?

看起来.preventDefault()相关的触摸事件不会是一种选择.

Jeg*_*B S -1

jQuery UI Touch Punch 正好解决了这一切。

它是 jQuery UI 的触摸事件支持。基本上,它只是将触摸事件连接回 jQuery UI。在 iPad、iPhone、Android 和其他支持触摸的移动设备上进行了测试。我使用了 jQuery UI sortable,它的工作方式就像一个魅力。

http://touchpunch.furf.com/