我有一个应用程序,SVG元素中的元素可以被拖放(感谢D3-拖动和D3变焦,请参阅https://bl.ocks.org/mbostock/3127661b6f13f9316be745e77fdfb084作为这样一个页面的示例),它也可以用于启用触摸的设备上,但是发生的情况是,在长时间按下之后,会弹出一个上下文菜单(至少在IE11、Edge和Firefox中是这样的),因此我希望在这种情况下阻止上下文菜单的出现。
一般情况下,我可以通过处理contextmenu事件和对事件对象执行.preventDefault()来不允许显示上下文菜单,但是我想知道是否存在一个解决方案,在触摸情况下,上下文菜单被阻塞,并且它仍然会出现在例如右击或当元素有焦点时按下菜单键。
我起初认为我可以查看事件对象的.button和.buttons属性,但这些值似乎是任意的0或2,在不同系统上测试不同浏览器时,似乎可以在任何组合中找到它们。
元素已经有touch-action: none了。
是否有一些工作方法可以使上下文菜单不显示触摸长按压的结果?
发布于 2017-11-14 06:28:29
jQuery UI触摸袋只是解决了这一切。
这是对jQuery UI的Touch事件支持。基本上,它只是将触摸事件连接回jQuery UI。在iPad、iPhone、Android和其他支持触摸的移动设备上进行了测试。我使用了jQuery UI可排序,它的工作就像一个魅力。
https://stackoverflow.com/questions/47202631
复制相似问题