如何在运动时禁用 jQueryUI 可拖动,并释放拖动 div

How to disable jQueryUI draggable while its in motion, and release the dragged div

我正在用 JS 构建游戏原型,它使用套接字进行通信 (socket.io)。当禁用拖动的命令出现时,我可以使用 disable 方法,也可以使用 destroy 方法。在拖动的 div 被释放后两者都工作正常(但不同),但是如果在拖动 div 时禁用拖动(这是 100% 的时间),则行为不是预期的。

disable - 在释放鼠标之前不执行任何操作,之后鼠标将不再可拖动。 破坏 - 一种作品。平滑拖动停止,但我仍然可以拖动 div 并使其 "warp" 遍布整个屏幕,而不是平滑。发布后,它不再可拖动。

所以,我的问题是。如何在 div 被拖动时暂时禁用其拖动行为,并使其停止在其轨道上?也许以某种方式模拟鼠标释放?

是的,使用 mouseup 事件执行您描述的操作将完全符合您的要求:

$("#myDraggable").trigger("mouseup");
$("#myDraggable").draggable("disable");

这是一个简单的例子:http://jsfiddle.net/8uwoss5f/