Javascript 触摸屏+;按住,然后使用HTML拖放进行拖动

Javascript 触摸屏+;按住,然后使用HTML拖放进行拖动,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,这主要是一个“这是否可能”类型的问题,因为经过一天的测试选择,我不确定它是否可能 我们在一个可滚动的DIV中有一个项目列表,每个项目都需要可触摸拖动。每次打开拖放功能都会破坏滚动列表的功能,因为滑动滚动也会被解释为拖动事件。最简单的选择是在每个项目上添加一个拖动手柄,但我们在这些项目上的可用UI空间非常小,而且超级用户希望不会把东西挤得更紧,从而为该手柄添加一个触碰区域 我正在研究的选项是“按住释放”。用户触摸并保持触摸一秒钟,项目“解锁”可拖动。这听起来很简单,当我开始的时候,使用Hammer

这主要是一个“这是否可能”类型的问题,因为经过一天的测试选择,我不确定它是否可能

我们在一个可滚动的DIV中有一个项目列表,每个项目都需要可触摸拖动。每次打开拖放功能都会破坏滚动列表的功能,因为滑动滚动也会被解释为拖动事件。最简单的选择是在每个项目上添加一个拖动手柄,但我们在这些项目上的可用UI空间非常小,而且超级用户希望不会把东西挤得更紧,从而为该手柄添加一个触碰区域

我正在研究的选项是“按住释放”。用户触摸并保持触摸一秒钟,项目“解锁”可拖动。这听起来很简单,当我开始的时候,使用HammerJS进行Press事件,然后调用开始拖放事件过程。但是,这不起作用,因为无法手动启动任何浏览器拖动事件。我可以使用触发器或dispatchEvent调用“touchstart”,这将完成我们需要的设置,但每次都不会发生拖动事件。”dragstart'通常会在touchstart出现时立即启动,而且由于我需要等待,因此没有和dragstart启动该过程

我假设浏览器的拖放事件仅在特定情况下有效。手动触发dragstart不会是真正的拖动事件(它缺少所有数据传输内容),最重要的是,实际上不会拖动任何内容,尽管元素是有效的、可拖动的元素。使用像“dragover”这样的备用事件是可行的,但是因为它从来没有真正的dragstart,所以没有实际的拖放发生

这仅仅是浏览器不支持的东西,除了删除javascript的HTML拖放功能吗?还是我遗漏了什么